实现思路与注意事项:
- 设置合理的过期时间,解决忘记释放锁、甚至服务器宕机未释放锁的问题
- 获取锁和设置过期时间,需要具有原子性,使用指令
SET key value NX PX millisecondsNX 代表只有当键key不存在的时候才会设置key的值PX 表示设置键 key 的过期时间,单位是毫秒
- value 值随机设置,删除 value 前判断是否相等,解决当前线程可能释放其他线程加的锁的问题
- lua 脚本可以解决,删除 value 时判断-删除,非原子操作的问题
实现思路与注意事项:
SET key value NX PX millisecondsNX 代表只有当键key不存在的时候才会设置key的值PX 表示设置键 key 的过期时间,单位是毫秒