redis 事物:
Redis 事物的实现:
- 首先 wath监控键值 myKey
- 开启批量执行 multi,执行命令入列,执行 exec 。如果监控的键值mykey 没有被修改过,则exec 中批量执行的命令成功,否则执行失败。无论执行成功与否,都会执行取消wath的执行
Redis multi 批量执行,是先把批量中的命令放入队列,此时所有的命令都不会执行,知道exec 中才会执行命令。
(一)修改过程中数据变化,执行失败
1创建 key值hbb0b0,并把 hbb0b0的值改为5
127.0.0.1:6379> select 0
OK
127.0.0.1:6379> set hbb0b0 5
OK
127.0.0.1:6379> get hbb0b0
"5"
2开启命令行窗口,开启事物,监视key hbb0b0,执行更改hbb0b0 为6
3开启图形窗口,修改hbb0b0的值为10
4 开启命令行窗口,提交修改命令
5 最终的结果是命令执行失败
(二)修改过程中数据无变化,执行成功
开启事物后,事物未被修改过,事物执行成功