0 Github
<https://yq.aliyun.com/go/articleRenderRedirect?url=https%3A%2F%2Fgithub.com%2FWasabi1234>
1 面试题
一般实现分布式锁都有哪些方式?使用redis如何设计分布式锁?使用zk来设计分布式锁可以吗?这两种分布式锁的实现方式哪种效率比较高?
2 考点分析
一般先问问你zk,然后过渡到zk关联的一些问题,比如分布式锁.
因为在分布式系统开发中,分布式锁的使用场景还是很常见的~
3 Redis分布式锁
官方叫做RedLock算法,是Redis官方支持的分布式锁算法.
这个分布式锁有3个重要的考量点
* 互斥(只能有一个客户端获取锁)
* 不能死锁
* 容错(大部分Redis节点或者这个锁就可以加可以释放)
3.1 最普通的实现方式
创建一个key
SET my:lock 随机值 NX PX 30000
* NX : 只有key不存在的时候才会设置成功
* PX 30000 : 30秒后锁自动释放。别人创建的时候如果发现已经有了就不能加锁了.
释放锁就是删除key
热门工具 换一换