今天是个好天气 logo 今天是个好天气
  • Home
  • Go
  • MySQL
  • Redis
  • LeetCode
  • Hello World
↩️README 数据结构 Redis是怎么运行的 持久化 缓存过期与内存淘汰 集群模式 缓存 分布式锁 事务机制 Hot Key / Big Key

分布式锁

是什么

分布式锁就是分布式场景下的锁,比如多台不同机器上的进程,去竞争同一项资源,就是分布式锁。

具备哪些特性的分布式锁才是一个优秀的分布式锁?

  • 互斥性:锁的目的是获取资源的使用权,所以只让一个竞争者持有锁,这一点要尽可能保证;
  • 安全性:避免死锁情况发生。当一个竞争者在持有锁期间内,由于意外崩溃而导致未能主动解锁,其持有的锁也能够被正常释放,并保证后续其它竞争者也能加锁;
  • 对称性:同一个锁,加锁和解锁必须是同一个竞争者。不能把其他竞争者持有的锁给释放了,这又称为锁的可重入性。
  • 可靠性:需要有一定程度的异常处理能力、容灾能力。

常用实现方式

setnx

  • 如何保证互斥性:Lua
  • 如何保证安全性:支持过期时间
  • 如何保证对成性:加owner
  • 如何保证可靠性:主从容灾、多级部署
  1. 是什么
  2. 常用实现方式
    1. setnx
Created by shixiaocaia | Powered by idoc
Think less and do more.