redis 事务
程序员文章站
2022-06-12 11:56:35
...
redis的事务功能可由multi和watch命令来完成;watch keys 还可以检测多个key
如将watch mm 改为 watch mm tt
运行结果将是
还有一种情况zrangebyscore key start stop withscores也会让watch/multi运行结果为(nil),此时无论watch的是mm还是tt都将得到(nil)
注:在2.4.15中无此问题
watch在redis事务中相当于CAS(check-and-set)的功能,因此redis操作事务只需在循环中运行watch到exec中的命令,直到成功为止。
redis > WATCH mm OK redis > MULTI OK redis > zadd mm 5 eeeeeeeeeeeeee QUEUED redis > zadd tt 5 55555555555555 QUEUED # 此时在另外一个redis-cli窗口运行 zadd tt 6 66666666666666666 #然后再运行 redis > exec 1) (integer) 1 2) (integer) 1运行结果是两条命令都成功的
如将watch mm 改为 watch mm tt
运行结果将是
(nil)
还有一种情况zrangebyscore key start stop withscores也会让watch/multi运行结果为(nil),此时无论watch的是mm还是tt都将得到(nil)
注:在2.4.15中无此问题
watch在redis事务中相当于CAS(check-and-set)的功能,因此redis操作事务只需在循环中运行watch到exec中的命令,直到成功为止。