redis之红锁(Redlock)

关于分布式锁,一般有三种选择,1、redis2、zk3、DB锁(悲观锁、乐观锁)其中用的最多的应该是redis。redis常用的方式有单节点、主从模式、哨兵模式、集群模式。单节点在生产环境
强烈推介IDEA2021.1.3破解激活,IntelliJ IDEA 注册码,2021.1.3IDEA 激活码  

关于分布式锁,一般有三种选择,

1、redis 

2、zk

3、DB锁(悲观锁、乐观锁)

 

其中用的最多的应该是redis。

redis常用的方式有单节点、主从模式、哨兵模式、集群模式。

单节点在生产环境基本上不会使用,因为不能达到高可用,且连RDB或AOF备份都只能放在master上,所以基本上不会使用。

另外几种模式都无法避免两个问题:

1、异步数据丢失。

2、脑裂问题。

 

所以redis官方针对这种情况提出了红锁(Redlock)的概念。

假设有5个redis节点,这些节点之间既没有主从,也没有集群关系。客户端用相同的key和随机值在5个节点上请求锁,请求锁的超时时间应小于锁自动释放时间。当在3个(超过半数)redis上请求到锁的时候,才算是真正获取到了锁。如果没有获取到锁,则把部分已锁的redis释放掉。

 

附上官方Redlock链接地址:https://redis.io/topics/distlock

 

本文来源惊艳了时光,由架构君转载发布,观点不代表Java架构师必看的立场,转载请标明来源出处:https://javajgs.com/archives/36307
0

发表评论