您现在的位置是:首页 > 文章详情

突破Java面试(42) - Redis & ZooKeeper两种分布式锁实现的优劣

日期:2019-07-09点击:436

0 Github

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

原文链接:https://yq.aliyun.com/articles/708488
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章