Redis事务操作

发布时间:2024年01月12日

1. Redis事务常见命令

名称描述
DISCARD取消事务,放弃执行事务块内的所有命令
EXEC执行所有事务块内的命令
MULTI表示一个事务块的开始
UNWATCH取消WATCH命令对所有keyd监控
WATCH eye [key…]监视一个或多个kye,如果在事务执行之前(或这些)key被其它命令所改的,那么事务将会被打断

2. 具体案例

redis会将一次事务的所有命令放在一个队列中,一次性

redis没个命令都是原子的,如果多个命令组合到一起想要一起执行就需要事务了。

  • 案例一:开启一个事务

在这里插入图片描述

  • 案例二:放弃一个事务

在这里插入图片描述

  • 全体连坐

如果事务中一个命令有错误,整个事务失败

在这里插入图片描述

  • 冤有头债有主

针对运行以后的异常,错误的命令执行失败,成功的就执行成功,因为与传统的数据库事务不一样,redis是不支持回滚的

在这里插入图片描述

  • watch监控

Redis使用watch来提供乐观锁定,类似于CAS

乐观锁:每次去拿谁的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断胰腺癌在此期间有没有去更新这个数据。(乐观锁策略:提交版本必须大于记录当前的版本才能更新)
悲观锁:每次去拿数据的时候都认为别人会修改,所以每次拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁

在这里插入图片描述
在这里插入图片描述
因为第二个客户端在事务还没有执行完之前就修改类balance的数据,导致balance的版本升高,所以事务就会失效,UNWATCH就可以放弃监控(放弃加锁)

文章来源:https://blog.csdn.net/qq_43456605/article/details/135547349
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。