redis watch命令
李羽秋
2022年01月26日 · 阅读 955
redis watch命令
1.watch命令作用?
在Redis中使用watch命令可以决定事务是执行还是回滚。一般而言,可以在multi命令之前使用watch命令监控某些键值对,然后使用multi命令开启事务,执行各类对数据结构进行操作的命令。
当Redis使用exec命令执行事务的时候,它首先会去比对被watch命令所监控的键值对,如果没有发生变化,那么它会执行事务中的命令,提交事务;如果发生变化,那么它不会执行任何事务中的命令。而去事务回滚。无论事务是否回滚,Redis都会去取消执行事务前的watch命令,流程图如下:
2. 实例
1.使用xshell新建两个不同会话进行连接,并同时开启redis
2.会话2设置键为balance,值为20,并使用watch监控balance值
3.会话2执行事务操作,并将balance减10操作放入队列
4.这时,会话3将balance 值减2
5.会话2执行执行exec命令
从这个例子可以看出,当开启事务之前使用watch命令监控某个值时,在未执行事务之前有人对这个值进行了修改,当执行事务时,
redis将会对事务进行回滚
分类:
redis
标签:
无