redis事务
注意:我使用的版本是6.0.10,不同版本可能略有差别
redis可以一次执行多条命令,一个事务中所有命令都会序列化,按顺序的串行化执行而不会被其他命令插入
事务的常用命令
- multi 标记一个事务块的开始
- exec 执行事务块的命令
- discard 取消事务,丢弃事务块的命令
- watch key [key …] 监视key,如果在事务执行之前,这个key被其他命令所改动,则事务中断
- unwatch 取消监视所有key
事务的执行
1 | 标注事务的开始 |
redis的事务没有隔离级别的概念,并且不会保证原子性
watch监视
watch指令类似于乐观锁,在事务开始之前使用,如果在watch之后有任何所监视的key发生变化,exec指令所执行的事务将会被放弃
1 | 设值 |
redis只能保证事务中的操作顺序执行,但是如果事务中有一条命令失败了,并不会回滚其他命令