redis分布式锁优缺点

缺点:

  • 获取锁的方式简单粗暴,获取不到锁直接不断尝试获取锁,比较消耗性能;
  • redis的设计定位决定了它的数据并不是强一致性的,在某些极端情况下,可能会出现问题。锁的模型不够健壮;
  • 使用redlock算法来实现,在某些复杂场景下,也无法保证其实现100%没有问题,关于redlock的讨论可以看 How to do distributed locking;
  • redis分布式锁,其实需要自己不断去尝试获取锁,比较消耗性能。

zookeeper分布式锁优缺点

优点

  • zookeeper天生设计定位就是分布式协调,强一致性。锁的模型健壮、简单易用、适合做分布式锁;
  • 如果获取不到锁,只需要添加一个监听器就可以了,不用一直轮询,性能消耗较小。

缺点

  • 有较多的客户端频繁的申请加锁、释放锁,对于zookeeper集群的压力会比较大。

总结

通过上面两种分布式锁的优缺点比较,我们应该如何选型呢?

就个人而言的话,比较推崇zookeeper分布式锁,因为redis有可能存在隐患,可能会导致数据不对的情况。但是,怎么选用要看具体公司的场景了。

如果公司里面有zookeeper集群条件,优先选用zookeeper实现。如果公司只有redis集群,没有条件搭建zookeeper集群,那么使用redis来实现也可以。

分布式锁-redis、zookeeper优缺点相关推荐

  1. 关于分布式锁的面试题都在这里了|Reids分布式锁|ZooKeeper分布式锁

    我今天班儿都没上,就为了赶紧把这篇文章分布式锁早点写完.我真的不能再贴心了. 边喝茶边构思,你们可不要白嫖了! 三连来一遍? 引言 为什么要学习分布式锁? 最简单的理由就是作为一个社招程序员,面试的时 ...

  2. 聊聊分布式锁——Redis和Redisson的方式

    聊聊分布式锁--Redis和Redisson的方式 一.什么是分布式锁 分布式~~锁,要这么念,首先得是『分布式』,然后才是『锁』 分布式:这里的分布式指的是分布式系统,涉及到好多技术和理论,包括CA ...

  3. 分布式锁-Redis解决方案和Redisson解决方案

    文章目录 1:分布式锁的概念 1:概念 2:锁/分布式锁/事务区别 2:本文使用的案例场景 1:需求 2:controller层代码 3:锁控制层代码(使用synchronized 不成功) 4:调用 ...

  4. 分布式锁-Redis红锁解决方案

    文章目录 1:分布式锁的概念 1:概念 2:锁/分布式锁/事务区别 2:本文使用的案例场景 1:需求 2:controller层代码 3:锁控制层代码(使用synchronized 不成功) 4:调用 ...

  5. Zookeeper命令操作(初始Zookeeper、JavaAPI操作、分布式锁实现、模拟12306售票分布式锁、Zookeeper集群搭建、选举投票)

    Zookeeper命令操作(初始Zookeeper.JavaAPI操作.分布式锁实现.模拟12306售票分布式锁.Zookeeper集群搭建.选举投票) 1.初始Zookeeper Zookeeper ...

  6. 分布式锁原理——redis分布式锁,zookeeper分布式锁

    首先分布式锁和我们平常讲到的锁原理基本一样,目的就是确保,在多个线程并发时,只有一个线程在同一刻操作这个业务或者说方法.变量. 在一个进程中,也就是一个jvm 或者说应用中,我们很容易去处理控制,在j ...

  7. 关于分布式锁原理的一些学习与思考:redis分布式锁,zookeeper分布式锁

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:牛人 20000 字的 Spring Cloud 总结,太硬核了~ 作者:队长给我球. 出处:https://w ...

  8. zookeeper 分布式锁_关于redis分布式锁,zookeeper分布式锁原理的一些学习与思考

    编辑:业余草来源:https://www.xttblog.com/?p=4946 首先分布式锁和我们平常讲到的锁原理基本一样,目的就是确保,在多个线程并发时,只有一个线程在同一刻操作这个业务或者说方法 ...

  9. redis cluster 分布式锁_关于分布式锁原理的一些学习与思考redis分布式锁,zookeeper分布式锁...

    首先分布式锁和我们平常讲到的锁原理基本一样,目的就是确保,在多个线程并发时,只有一个线程在同一刻操作这个业务或者说方法.变量. 在一个进程中,也就是一个jvm 或者说应用中,我们很容易去处理控制,在j ...

最新文章

  1. Python开发(基础):字符串
  2. sola ris 简单命令
  3. U-Mail邮件系统的管理权限分配
  4. python3菜鸟教程中文-Python3 字符串
  5. js实现给a href= href赋值
  6. OJ题目细菌实验分组c语言,C语言
  7. matlab柱状图加阴影,matlab 绘制 阴影 柱状图 条形图
  8. 软件开发有哪些规范和标准_高品质、标准化——四维图新自动驾驶地图通过ASPICE CL2认证...
  9. 【clickhouse】clickhouse 表引擎 之 AggregatingMergeTree
  10. nodejs操作mysql查询返回的数据_nodejs连接mysql进行数据库查询返回前台数据的坑...
  11. 计算机网络物理层之数据通信的基础知识
  12. VeriSign SSL证书产品及服务_VeriSign证书|SSL证书|EVSSL证书|服务器证书|数字证书
  13. 【冈凡记录】阿冈与叶凡超女8进6决赛的全观察!
  14. 基于MNIST数据集实现手写数字识别
  15. 海南新能源内容市场遇冷,本土内容平台杉车网如何解围?
  16. 抖音表情包项目怎么变现?普通人如何利用表情包短视频月入过万?
  17. 02 SVN 与 Git 的优缺点
  18. 如何得到每个区域的每个土地利用类型的面积
  19. 如何使用python insert插入数据
  20. sed在某一行行首添加字符_sed在行首或者行尾添加内容

热门文章

  1. Python编程基础(1)
  2. 接口隔离原则(Interface Segregation Principle)
  3. GMSL虚拟通道ID简介
  4. android 4.4 batteryservice 电池电量显示分析
  5. 计算机大数据的前景方向_大数据十大发展方向!
  6. 记一次失败的《将视频中的音频转换成文字》的经历
  7. Ubuntu、stm32下的C程序各变量的分配地址分析
  8. 二叉树非递归后序遍历的三种办法
  9. Xilinx ZYNQ Ultrascale+ 性能测试之 PL/PS PCIe Root Port NVMe
  10. 7-7 到底是不是太胖了