Redis分布式锁

总结摘要
Redis分布式锁

Redis分布式锁

基础实现

如何用 Redis 实现分布式锁?核心步骤是什么?

SETNX 命令的用法?为什么需要结合 EXPIRE 设置过期时间?

如何保证加锁和设置过期时间的原子性?(SET key value NX PX 30000)

如何实现可重入锁?需要额外记录什么信息?

高级问题

分布式锁的释放需要注意什么?为什么要用 Lua 脚本保证原子性?

什么是 RedLock 算法?它解决了什么问题?有什么争议?

如果持有锁的线程执行时间超过锁的过期时间,如何处理?(锁续期)

你项目中用过分布式锁吗?在什么场景下?如何实现的?

Redis 分布式锁和 ZooKeeper 分布式锁的对比?各自优缺点?