Redis 分布式锁学习笔记:setIfAbsent 和 Redisson
写在前面
分布式锁是我学习库存扣减、重复提交和定时任务时接触到的内容。这篇只记录基础理解。
setIfAbsent
Redis 实现锁的基础思路是:只有第一个请求能写入某个 key。
1 | |
要注意:
- 锁要有过期时间
- value 最好是唯一标识
- 释放锁时要判断是不是自己的锁
释放锁
释放锁不能简单删除 key,最好用 Lua 保证判断和删除的原子性。
1 | |
Redisson
真实项目里常用 Redisson,因为它封装了很多细节。
1 | |
小结
分布式锁不是万能方案。很多场景还需要数据库唯一索引、幂等 token、状态机等方式兜底。
Redis 分布式锁学习笔记:setIfAbsent 和 Redisson
https://zxyblog.top/2024/10/18/Redis分布式锁学习笔记-setIfAbsent和Redisson/