特点:
- 顺序执行,先添加的先执行,后添加的后执行
- 不会受到其他客户端的干扰
命令
multi
开启事务
没有子事务,没有嵌套事务
exec
执行事务
discard
取消事务
watch
乐观锁
unwatch
取消监视
事务演示
ada和bob各有1000元,ada需要向bob转账100元
开启事务之后,客户端向服务端发送命令,服务端不会马上执行,而是放在一个队列中,执行exec命令后,才会按照命令入队的顺序执行
watch指令
客户端1
此时,客户端2执行
再在客户端1执行
此时事务执行失败
事务可能遇到的问题
执行exec之前
事务会取消
执行exec之后
没有问题的命令提交成功了,异常的命令提交失败
所以redis的事务不具有原子性