Redis 的 sentnx 和 watch 都可以用来做锁么? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fallenff
V2EX    Java

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

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

    感觉好像都行? 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     Solana     5579 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 02:40 PVG 10:40 LAX 18:40 JFK 21:40
    Do have faith in what you're doing.