- redis 获取锁的方法比较粗暴,获取不到,则是不断的重试;
- 不是强一致性的,会在极端的情况下出现问题(时间偏移、红锁半数以上的节点才可以成功,会出现某节点出现宕机。导致两个以上的客户端获取半数以上投票而获取分布式锁、主从节点模式下(主从不一致的情况会导致,两个以上客户端获取分布式锁))
- redis的性能比zk高
对于zk分布式锁而言:
- 强一致性的特征;
- 获取不到锁的客户端只需要监听事件则可,无需不停的重试
- 客户端与zk节点出现网络问题的情况下,会出现锁自动失效的可能(同一局域网下,出现的几率几乎不存在;或者如下图的处理办法)