面试:Redis实现分布式锁有哪些坑?
GuJeonPa:
我当时面试 面试官问我 分布式锁用什么实现最好。我就会个redis就说这个。他说是zk
【回复】没有完美的Zk也是半数通过
【回复】所以支持一致性协议的理论上都可以. 但需考虑在异常情况下,能否自动释放锁。
福临财至:
redis加锁还有性能问题,那么哪种方案没有性能问题? 释放了别人的锁,是程序设计问题吧,从加锁来说,redis新版本支持原子操作,锁竞争哪有不失败的?释放锁业务没做完也是程序设计问题,没有释放锁还是程序设计问题。 其实最核心的就是集群下,数据不一致问题一条。
屎蛋犁:
redis-setnx
redis-redisson(lua)
redis-redisson+redlock
zk-临时节点
zk-临时有序节点(推荐,watch+有序 解决自旋、羊群)
程序员 redis分布式锁 面试 Redis 分布式锁