Redisson实现的分布式锁能解决主从一致性的问题吗?

这个是不能的。比如,当线程1加锁成功后,master节点数据会异步复制到slave节点,此时如果当前持有Redis锁的master节点宕机,slave节点被提升为新的master节点,假如现在来了一个线程2,再次加锁,会在新的master节点上加锁成功,这个时候就会出现两个节点同时持有一把锁的问题。

我们可以利用Redisson提供的红锁来解决这个问题,它的主要作用是,不能只在一个Redis实例上创建锁,应该是在多个Redis实例上创建锁,并且要求在大多数Redis节点上都成功创建锁,红锁中要求是Redis的节点数量要过半。这样就能避免线程1加锁成功后master节点宕机导致线程2成功加锁到新的master节点上的问题了。

但是,如果使用了红锁,因为需要同时在多个节点上都添加锁,性能就变得非常低,并且运维维护成本也非常高,所以,我们一般在项目中也不会直接使用红锁,并且官方也暂时废弃了这个红锁。

相关推荐
老邓计算机毕设1 分钟前
SSM校内二手书籍交易系统的设计与实现an1k0(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架·ssm 框架开发·ssm 校内二手书籍交易系统
rchmin3 分钟前
Java内存模型(JMM)详解
java·开发语言
Wpa.wk10 分钟前
Tomcat的安装与部署使用 - 说明版
java·开发语言·经验分享·笔记·tomcat
吧啦蹦吧15 分钟前
java.lang.Class#isAssignableFrom(Class<?> cls)
java·开发语言
都是蠢货23 分钟前
drop delete和truncate的区别?
java·开发语言
天行健,君子而铎30 分钟前
高性能、可控、多架构:教育行业数据库风险监测一体化解决方案
数据库·架构
Stella252136 分钟前
实习日志|知识总结
linux·服务器·软件测试·数据库
凤凰战士芭比Q38 分钟前
Nexus仓库(maven仓库、Yum仓库、APT仓库)
java·maven
可爱又迷人的反派角色“yang”43 分钟前
redis知识点总集
linux·运维·数据库·redis·缓存