您当前的位置: 首页 >  redis

java持续实践

暂无认证

  • 2浏览

    0关注

    746博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

关于Redis与zk的分布式锁

java持续实践 发布时间:2020-09-20 16:59:44 ,浏览量:2

一般实现分布式锁都有哪些方式 ?

使用Redis如何实现分布式锁 https://javaweixin6.blog.csdn.net/article/details/108693123

使用zk如何实现分布式锁 ?

zk 实现分布式锁大致思路: 某个节点创建临时的znode, 此时如果创建成功了就获得了这个锁, 别的客户端来创建锁就会失败, 该客户端就会注册一个监听器来监听这把锁. 当持有这个锁的客户端释放锁的时候, 即删除znode , 会通知监听的客户端, 监听器等待的客户端就会去给它加上锁.

这两种分布式锁哪种效率高?

redis分布式锁,其实需要自己不断去尝试获取锁,比较消耗性能

zk分布式锁,获取不到锁,注册个监听器即可,不需要不断主动尝试获取锁,性能开销较小

另外一点就是,如果是redis获取锁的那个客户端bug了或者挂了,那么只能等待超时时间之后才能释放锁;而zk的话,因为创建的是临时znode,只要客户端挂了,znode就没了,此时就自动释放锁

redis分布式锁大家每发现好麻烦吗?遍历上锁,计算时间等等。。。zk的分布式锁语义清晰实现简单

所以先不分析太多的东西,就说这两点,我个人实践认为zk的分布式锁比redis的分布式锁牢靠、而且模型简单易用

关注
打赏
1658054974
查看更多评论
立即登录/注册

微信扫码登录

0.0386s