企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
## 开启事务 ## multi ``` decrby 键 值 //增加多少 这是String字符串里的命令 ``` ``` incrby 键 值 //减少多少 这是String字符串里的命令 ``` ## 执行事务 ``` exec ``` # 真正使用和真正意义上的redis事务 ## 语法 ``` watch 键1 //监控第一个值 watch 键2 //监控第二个值 multi //开启事务 decrby 键1 100 //键1减去100 incrby 键2 100 //键2加上100 假如第一个值在另外一个地方发生变化或者第二个值在另外地方发生变化,那么就终止事务达到回滚 ``` ## watch监控键使用语法: (终止事务用) ``` watch 键 //监控键 multi ``` 如果监控的这个键的值,从外部修改或者另外的cil命令窗口开始那么这个事务会停止 ``` 127.0.0.1:6379> set liu 10000 OK 127.0.0.1:6379> set wang 5000 OK 127.0.0.1:6379> watch liu OK 127.0.0.1:6379> multi OK 127.0.0.1:6379> set liu incrby 2000 QUEUED 127.0.0.1:6379> exec (nil) //这个nil就是终止了事务 127.0.0.1:6379> get liu "5000" 127.0.0.1:6379> ``` ![](https://img.kancloud.cn/47/43/474300130c968f2cb094f3e739e4aaee_653x393.png) ![](https://img.kancloud.cn/7c/60/7c602b27cbd32c3047aee8ae6bd072ae_1142x454.png) 以上图片代码示例: ``` 127.0.0.1:6379> watch liu OK 127.0.0.1:6379> watch wang OK 127.0.0.1:6379> DECRBY liu 100 (integer) 4900 127.0.0.1:6379> multi OK 127.0.0.1:6379> DECRBY liu 100 QUEUED 127.0.0.1:6379> incrby wang 100 QUEUED 127.0.0.1:6379> exec (nil) //nil就是失败的意思 ``` # 事务中进行的演示: 事务进行中:: ![](https://img.kancloud.cn/5c/e2/5ce2529e84f9231e5ffd78cc6cb54c84_1060x500.png) 另外一个窗口改变了第一个值 ![](https://img.kancloud.cn/2b/8a/2b8aecc319b5e2faa1c5d72778856a9c_1005x532.png) ## 所以导致了事务失败,第二个值没有执行, 这就是事务的意义