Redis如何实现分布式锁?

实现思路与注意事项:

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

【Java面试题与答案】整理推荐

发布了485 篇原创文章 · 获赞 1450 · 访问量 153万+

猜你喜欢

转载自blog.csdn.net/meism5/article/details/104273325