V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fallenff
V2EX  ›  Java

Redis 的 sentnx 和 watch 都可以用来做锁么?

  •  
  •   fallenff · 2017-05-07 19:53:10 +08:00 · 2108 次点击
    这是一个创建于 2539 天前的主题,其中的信息可能已经有所发展或是发生改变。

    感觉好像都行? watch 是事务期间如果其他客户端修改了这个键,那么就无法完成事务。

    sentnx 给他设置过期时间,也等于是设置了一个锁吧

    5 条回复    2017-05-08 16:27:12 +08:00
    0915240
        1
    0915240  
       2017-05-08 09:18:04 +08:00 via iPhone
    还有 getset
    honam
        2
    honam  
       2017-05-08 10:53:02 +08:00
    我也是用 setnx+expire+del 做锁的
    fallenff
        3
    fallenff  
    OP
       2017-05-08 11:07:47 +08:00 via Android
    @honam 嗷,感觉 watch 也可以做?
    jameshuazhou
        4
    jameshuazhou  
       2017-05-08 11:45:25 +08:00
    watch 多用于做乐观锁,比较适合冲突少的场景
    phx13ye
        5
    phx13ye  
       2017-05-08 16:27:12 +08:00
    incr(key)== 1 也可以
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2586 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 15:28 · PVG 23:28 · LAX 08:28 · JFK 11:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.