【Redis】乐观锁

乐观锁

乐观锁并不是 Redis 的功能,而是 Redis 的 watch 关键字能 实现 乐观锁。

开启事务前,设置对数据的监听(watch)exec时,如果发生数据 发生过修改,作用于改数据的事务会自动取消(discard),事务exec后,无论成败,监听会被移除

添加监听:watch key [keys]

取消监听(会取消所有的):unwatch

乐观锁 实例

开启监听

mark

新开启一个客户端,修改 k 值

127.0.0.1:6379> set k bb
OK

继续 exec 执行事务(exec 之前 k 值已经被改变),事务执行不会成功

mark

应用场景

  • 多个客户端可能同时操作同一组数据,并且该数据一旦被操作修改后,便不适合在原基础上继续操作,如四个业务员对一个物品进行入库操作,一名业务员操作完成之后,其他的业务员将不可以再原先基础的数量上进行入库操作。
发表评论 / Comment

用心评论~