问题:
在redis集群中;如果请求一个分布式锁成功;但slave还没有复制同步这个锁,master宕机了;再次去加锁的时候会从继任了master的原slave上申请加锁,也会成功。导致同一个锁被获取了不止一次。
解决:
对集群的每个节点进行加锁,如果大多数(N/2+1)加锁成功了,则认为获取锁成功。
Redisson实现了红锁;但是它对每个加锁的实现,不能保证每个锁落在不同的master上。不建议使用
直接使用Redisson的普通锁即可。
问题:
在redis集群中;如果请求一个分布式锁成功;但slave还没有复制同步这个锁,master宕机了;再次去加锁的时候会从继任了master的原slave上申请加锁,也会成功。导致同一个锁被获取了不止一次。
解决:
对集群的每个节点进行加锁,如果大多数(N/2+1)加锁成功了,则认为获取锁成功。
Redisson实现了红锁;但是它对每个加锁的实现,不能保证每个锁落在不同的master上。不建议使用
直接使用Redisson的普通锁即可。