【≅Redis】Redis中是如何实现分布式锁的?

分布式锁常见的三种实现方式:

  • 数据库乐观锁;
  • 基于Redis的分布式锁;
  • 基于ZooKeeper的分布式锁。

Redis要实现分布式锁,以下条件应该得到满足:

  • 互斥性:在任意时刻,只有一个客户端能持有锁。
  • 不能死锁:客户端在持有锁的期间崩溃而没有主动解锁,也能保证后续其他客户端能加锁。
  • 容错性:只要大部分的Redis节点正常运行,客户端就可以加锁和解锁。

实现方式

  • 通过 set key value px milliseconds nx 命令实现加锁, 通过Lua脚本实现解锁。
  • Redisson实现

 

参考:

posted @ 2023-03-16 11:52  残城碎梦  阅读(15)  评论(0编辑  收藏  举报