✅Redis 的分布式锁和 Zookeeper 的分布式锁有啥区别?
这个问题其实是上面这个问题的衍生题,其实答案在上面这篇中已经有了,但是因为最近被问的比较多,所以就单独补充一下吧。
要说对不起死锁友好,Zookeeper 会比 Redis 更加友好一点。
什么叫死锁友好呢,就是可以减少锁的时长、提供自动释放等机制,就可以提前释放锁,就能降低死锁发生的概率,所谓的死锁友好。
而ZooKeeper在客户端崩溃时,链接会自动断开,那么就会自动删除崩溃客户端创建的锁节点,这样就相当于解锁了,那么就可以很大程度上来避免死锁。
而Redis锁虽然有超时释放的机制,但如果客户端在执行关键任务时突然崩溃,其他客户端需要等超时时间到了之后才能加锁成功。