Redis(五):Redis事务



Redis事务:是一些列redis命令的集合,在一次单独的步骤中执行一组命令,Redis会将一个事务中的所有命令序列化,然后按顺序执行。


multi 、 exec 、 discard 、watch


  1. MULTI
    multi用于标记一个事务块的开始,Redis会将后续的命令逐个放入队列中,然后才能使用EXEC命令原子化地执行这个命令序列。
  2. EXEC
    exec执行所有事务块内的命令, 在一个事务中执行所有先前放入队列的命令,然后恢复正常的连接状态。
  3. DISCARD
    discard清除所有先前在一个事务中放入队列的命令,然后恢复正常的连接状态。
    如果使用了WATCH命令,那么DISCARD命令就会将当前连接监控的所有键取消监控。
  4. WATCH
    watch当某个事务需要按条件执行时,就要使用这个命令将给定的键设置为受监控的。
    WATCH key [key …]
  5. UNWATCH
    unwatch清除所有先前为一个事务监控的键。
    如果调用了EXEC或DISCARD命令,那么就不需要手动调用UNWATCH命令。

Redis使用方法


使用MULTI命令便可以进入一个Redis事务。这个命令的返回值总是OK。此时,用户可以发出多个Redis命令。Redis会将这些命令放入队列,而不是执行这些命令。一旦调用EXEC命令,那么Redis就会执行事务中的所有命令。相反,调用DISCARD命令将会清除事务队列,然后退出事务。
EXEC命令的返回值是一个数组,包含事务中每个命令的执行结果,且响应的顺序和命令发出时的顺序一样。

  • 事务中的所有命令都是序列化且都是按顺序执行的。
  • 所有的命令要么都被一起处理,要么全都没有被处理,所以Redis事务是原子的。

Redis不支持回滚


Redis命令在事务中可能会执行失败,但是Redis事务不会回滚,而是继续会执行余下的命令。

— The end —

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值