欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

redis 事务

程序员文章站 2022-06-12 11:56:35
...
redis的事务功能可由multi和watch命令来完成;watch keys 还可以检测多个key

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中的命令,直到成功为止。