Skip to content

Commit 04b4662

Browse files
author
Young Chen
authored
Update Redlock分布式锁.md
1 parent 2278117 commit 04b4662

File tree

1 file changed

+0
-3
lines changed

1 file changed

+0
-3
lines changed

数据存储/Redis/Redlock分布式锁.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,3 @@ end
4545
## 性能、崩溃恢复和 fsync
4646

4747
如果我们的节点没有持久化机制,client 从 5 个 master 中的 3 个处获得了锁,然后其中一个重启了,这是注意 **整个环境中又出现了 3 个 master 可供另一个 client 申请同一把锁!** 违反了互斥性。如果我们开启了 AOF 持久化那么情况会稍微好转一些,因为 Redis 的过期机制是语义层面实现的,所以在 server 挂了的时候时间依旧在流逝,重启之后锁状态不会受到污染。但是考虑断电之后呢,AOF部分命令没来得及刷回磁盘直接丢失了,除非我们配置刷回策略为 fsnyc = always,但这会损伤性能。解决这个问题的方法是,当一个节点重启之后,我们规定在 max TTL 期间它是不可用的,这样它就不会干扰原本已经申请到的锁,等到它 crash 前的那部分锁都过期了,环境不存在历史锁了,那么再把这个节点加进来正常工作。
48-
49-
## License
50-
* 原文 [基于 Redis 的分布式锁 Redlock](https://zhuanlan.zhihu.com/p/40915772)

0 commit comments

Comments
 (0)