开发者社区> 问答> 正文

redis watch失败,什么原因?

127.0.0.1:6379> set key 1
OK
127.0.0.1:6379> watch key
OK
127.0.0.1:6379> multi
OK
127.0.0.1:6379> set key 2
QUEUED
127.0.0.1:6379> exec
1) OK
127.0.0.1:6379> get key
"2"
先给key设置,然后watch它,在事务中修改key的值,提交后能成功修改,为什么?

展开
收起
落地花开啦 2016-02-19 15:47:00 3195 0
3 条回答
写回答
取消 提交回答
  • 为什么要讨厌我们这些懒人,明明我们什么都

    127.0.0.1:6379> set key 1 OK 127.0.0.1:6379> watch key OK 127.0.0.1:6379> set key 2 OK 127.0.0.1:6379> multi OK 127.0.0.1:6379> set key 3 QUEUED 127.0.0.1:6379> exec 1) OK 127.0.0.1:6379> get key "2" 应该是这样的,exec后会取消所有监控

    2022-08-08 14:16:22
    赞同 展开评论 打赏
  • 如果是在当期的事务中修改了监听key的值,将不会影响正常的事务运行

    2019-11-01 11:44:40
    赞同 展开评论 打赏
  • 喜欢技术,喜欢努力的人

    WATCH 命令用于在事务开始之前监视任意数量的键:当调用 EXEC 命令执行事务时,如果任意一个被监视的键已经被其他客户端修改了,那么整个事务不再执行,直接返回失败。
    并不是你watch了就一定不能修改成功

    2019-07-17 18:44:50
    赞同 1 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Redis在唯品会的应用实践——架构演进与功能定制 立即下载
微博的Redis定制之路 立即下载
云数据库Redis版的开源之路 立即下载