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

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

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

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

相关推荐
d***956243 分钟前
windows配置永久路由
java
G***E3161 小时前
区块链在能源中的分布式交易
分布式·区块链·能源
DingYuan1011 小时前
MySql分类
数据库·mysql
w***74171 小时前
spring session、spring security和redis整合的简单使用
redis·spring·bootstrap
爬山算法1 小时前
Redis(153)Redis的网络使用如何监控?
网络·redis·bootstrap
杨云龙UP2 小时前
SQL Server 备份异地同步 + 清理脚本
运维·服务器·数据库·sql·mysql·sqlserver
王桑.2 小时前
IO流高级流--转换流
java
O***Z6162 小时前
Redis——Windows安装
数据库·windows·redis
2301_795167202 小时前
Python 高手编程系列八:缓存
开发语言·python·缓存