Redis 事务

Redis事务提供了一种批量执行命令的方式,保证了命令的顺序执行,但不保证原子性。从MULTI开始,通过EXEC执行,期间可以使用DISCARD取消事务。WATCH用于监控键,若有变动则取消事务。事务执行期间,外部命令不会插入,确保执行顺序。关键词包括Redis、事务、原子性、批量操作。
摘要由CSDN通过智能技术生成

Redis 事务可以一次性执行多个命令,并且带有以下几个重要保证:

  • 批量操作在发送 EXEC命令前被放入队列缓存
  • 收到 EXEC 命令后进入食物执行,事务中任意命令执行失败不影响其余命令的执行
  • 在事务执行过程中,其他客户端提交的命令请求不会插入到事务执行命令序列中

一个事物从开始到执行会经历以下三个阶段:

  1. 开始事务
  2. 命令入队
  3. 执行事务

事务执行时必须以 MULTI 开始一个事务,然后将多个命令入队到事务中,最后由 EXEC 命令触发事务,一并执行事务中的所有命令。单个 Redis 命令的执行是原子性的,但 Redis 没有在事务上增加任何维持原子性的机制,所以 Redis 事务的执行并不是原子性的。其实,事务可以理解为一个大包的批量执行脚本,但批量指令并非原子化的操作,中间某条指令的失败并不会导致前面已执行指令的回滚,也不会造成后面未执行指令的停止。

Redis 事务
命令说明示例
MULTI标记一个事务块的开始
DISCARD取消事务,放弃执行事务块内的所有命令
EXEC执行所有事务块内的命令
WATCH key [key ...]见识一个或多个 key,如果在事务执行之前这个 key 被其他命令改动,那么事务将被中断
UNWATCH key [key ...]取消 WATCH 命令对所有 key 的监视

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值