Redis 分布式锁,当主节点挂了后,从节点接替主节点后,怎么处理还能保证锁的正常运行?
1 个回答
谎言不会伤人,真相才是快刀。华仔首先在获取锁的时候,同时也要知道自己获取的主节点的标识,如 redis 的 id,或者 ip port,再直行到最后的时候,要判断是不是在你之前获取的实例上的锁。是就结束释放锁。不是你就要回滚了。说明有可能主从切换了,你的锁丢了,不知道这样是否可以解决你的问题。 还有就生成锁的时候,需要生成一个唯一标识证明是这个服务实例的锁。结束的时候判断一下,自己还在不在,同时也要判断这个锁是不是在你生成锁的 redis 实例上,也就我上面说的方法。都不满足就回滚事物或者人工处理。 如果不是数据库事物操作。就需要人工处理比对。自动我觉得应该会记录你操作数据的前后镜像,如果前镜像和当时数据值一样,且版本一样,你自动恢复就可以了。不一样还需要人工处理。发布于 2021-11-21 22:51 •IP属地 浙江举报评论收藏
公众号进入网站体验更佳

