码界工坊

htykm.cn
人生若只如初见

redis 分布式锁的缺陷是什么?

  redis 分布式锁的缺陷:1、客户端长时间阻塞导致锁失效问题;2、redis服务器时钟漂移问题;3、单点实例安全问题。客户端长时间阻塞导致锁失效问题是指,某个客户端得到了锁,因为某些原因导致长时间阻塞,然后业务程序还没执行完锁就过期了。

  一、redis 分布式锁的缺陷

  1、客户端长时间阻塞导致锁失效问题

  客户端1得到了锁,因为网络问题或者GC等原因导致长时间阻塞,然后业务程序还没执行完锁就过期了,这时候客户端2也能正常拿到锁,可能会导致线程安全的问题。

  2、redis服务器时钟漂移问题

  如果redis服务器的机器时钟发生了向前跳跃,就会导致这个key过早超时失效,比如说客户端1拿到锁后,key的过期时间是12:02分,但redis服务器本身的时钟比客户端快了2分钟,导致key在12:00的时候就失效了,这时候,如果客户端1还没有释放锁的话,就可能导致多个客户端同时持有同一把锁的问题。

  3、单点实例安全问题

  如果redis是单master模式的,当这台机宕机的时候,那么所有的客户端都获取不到锁了,为了提高可用性,可能就会给这个master加一个slave,但是因为redis的主从同步是异步进行的,可能会出现客户端1设置完锁后,master挂掉,slave提升为master,因为异步复制的特性,客户端1设置的锁丢失了,这时候客户端2设置锁也能够成功,导致客户端1和客户端2同时拥有锁。

  二、分布式锁需要满足的特性

  · 互斥性:在任何时刻,对于同一条数据,只有一台应用可以获取到分布式锁;

  · 高可用性:在分布式场景下,一小部分服务器宕机不影响正常使用,这种情况就需要将提供分布式锁的服务以集群的方式部署;

  · 防止锁超时:如果客户端没有主动释放锁,服务器会在一段时间之后自动释放锁,防止客户端宕机或者网络不可达时产生死锁;

  · 独占性:加锁解锁必须由同一台服务器进行,也就是锁的持有者才可以释放锁,不能出现你加的锁,别人给你解锁了。

未经允许不得转载 » 本文链接:http://htykm.cn/html/90e4999860.html

推荐文章

  • 如何防止Ubuntu PHP

    防止Ubuntu PHP-FPM被攻击是一个涉及多个方面的任务,以下是一些关键的安全措施和建议:安全配置安装和配置PHP-FPM:确保PHP-FPM正确安装并配置,例如通过编辑/etc/php/版本号 ...

  • online是什么意思?online是什么域名?

    online是什么意思?online是什么域名?在众多新的顶级域名中,online域名意味着在线和联网的,非常适合当前网络时代人们的生活。因此,online域名受到了公众的追捧,很多人注册了onlin ...

  • 域名应该这样选?域名一般选哪个?

    域名应该这样选?域名一般选哪个?域名是网站的地址。要打开一个网站并让其他人知道你的网站,你必须首先有一个域名。那么如何申请域名,选择域名的原则是什么?下面聚名网就带大家看看域名应该这样选和域名一般选哪 ...

  • 怎么注册cc域名?cc域名的优势是什么?

    怎么注册cc域名?cc域名的优势是什么?通过统计,在cc域名开放注册到现在,已经在互联网上处于火爆状态。在中国的主流域名中,他最大的特点就是和tt域名一样,是世界上仅有的6个双域名之一。与tt域名相比 ...

  • CentOS Java调优有哪些技巧

    在CentOS系统上进行Java性能调优是一个涉及多个层面的复杂任务。以下是一些常用的调优技巧:JVM调优内存管理:通过调整堆内存大小-Xmx和-Xms)、非堆内存、垃圾回收器等参数来优化内存分配和回 ...

  • 什么是溢价域名?club溢价域名怎么回事?

    什么是溢价域名?club溢价域名怎么回事?自2017年以来,已经过去了半年多,第二季度已经成为过去。对俱乐部来说,2017年第二季度的业绩值得祝贺。第二季度.club共售出666个优质域名,直接通过拍 ...

  • 企业如何加强域名保护?域名保护该怎么做?

    企业如何加强域名保护?域名保护该怎么做?早前有报道称,ofo.com域名被日本收购,不久又有消息称ofo花费数百万美元回收ofo.com,。看来小黄汽车对.com域名有着深深的迷恋。下面聚名网小编就带 ...

  • 选择域名的技巧有哪些?如何考虑域名注册?

    选择域名的技巧有哪些?如何考虑域名注册?现在,在互联网+时代的背景下,许多行业都与之融合。互联网本质上只是一个工具,域名是这个工具的重要组成部分。而对于网站来说,域名是必不可少的。而且很多用户不知道如 ...