摘要: 使用SETNX命令获取分布式锁的步骤: C1和C2线程同时检查时间戳获取锁,执行SETNX命令并都返回0,此时锁仍被C3持有,并且C3已经崩溃 C1 DEL锁 C1 使用SETNX命令获取锁,并且成功 C2 DEL锁 C2 使用SETNX命令获取锁,并且成功 ERROR : 由于竞态条件,C1和C2 阅读全文
posted @ 2019-12-13 17:22 Mr、Liang 阅读(14433) 评论(3) 推荐(0) 编辑
摘要: springboot + redistemplate 实现锁的方案 1、通过set命令设置锁 2、判断返回结果是否是OK 1)Nil,获取失败,结束或重试(自旋锁) 2)OK,获取锁成功 执行业务 释放锁,DEL 删除key即可 3、异常情况,服务宕机。超时时间EX结束,会自动释放锁 代码清晰简洁 阅读全文
posted @ 2019-12-13 14:02 Mr、Liang 阅读(10776) 评论(0) 推荐(0) 编辑