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

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

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

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

相关推荐
大囚长10 分钟前
大模型API的上下文缓存(Contextual Cache)
人工智能·缓存
用户46825574591310 分钟前
Testcontainers 在 Windows Docker Desktop 上跑不通:协议层不兼容 + 4 种可行环境
java·后端
Tenaryo14 分钟前
「底层系统基石 · 缓存篇」V —— 写策略、Store Buffer 与内存屏障
后端·面试
程序员小羊!32 分钟前
12.Java 多线程编程
java·开发语言
小二·35 分钟前
Redis 7 分布式缓存架构实战
redis·分布式·缓存
xuhaoyu_cpp_java38 分钟前
项目学习(三)代码生成器
java·经验分享·笔记·学习
乐观勇敢坚强的老彭38 分钟前
C++信息学奥赛lesson1
java·开发语言·c++
Tongpao_SSDHDD40 分钟前
希捷酷鹰ST6000VX008实测解析:中小安防监控高性价比存储方案
大数据·数据库·人工智能
San813_LDD43 分钟前
[深度学习] 数据序列化格式对比:以日志级别配置为例
xml·java·前端
github_czy1 小时前
更加优雅的类型检查与传参---mcp源码分析
java·服务器·开发语言