框架源码专题-Redis-2、分布式锁与秒杀优化
1. 超卖问题
2. 分布式锁
2.1. Zookeeper 实现
服务注册与发现-12、Zookeeper3. Redis 分布式锁 -set nx ex- 存在问题⭐️🔴
3.1. 删除其他线程的锁
3.1.1. 发生原因
3.1.2. 解决方案
3.2. 优化线程 ID
3.3. 系统阻塞导致删锁
3.3.1. 发生原因
3.3.2. 解决方案
保证判断和释放动作的原子性
3.3.3. 不可重入
3.4. 问题总结⭐️🔴
比较容易解决的问题:
- 加锁与设置有效期设为原子操作
- 锁归属判断,防止误删其他线程的锁
- 判断锁归属与 unlock 动作设为原子操作
但是还是有其他问题:
- 不可重入
- 不可重试
- 超时释放,自动续期
- 主从一致性
所以引入 Redisson 或者 ZK 的分布式锁实现方案
4. Redisson
4.1. 使用
4.2. 可重入原理
4.2.1. 不可重入原因
4.2.2. 解决办法
4.3. 看门狗原理
https://www.bilibili.com/video/BV1cr4y1671t?t=1305.7&p=67
4.3.1. 设置定时递归
4.3.2. 取消定时任务
4.4. 总结
5. 秒杀优化
6. 实战经验
7. 参考与感谢
7.1. 黑马
7.1.1. 视频
7.1.2. 资料
1 |
|
7.2. 尚硅谷周阳
7.2.1. 视频
https://www.bilibili.com/video/BV13R4y1v7sP?p=138&vd_source=c5b2d0d7bc377c0c35dbc251d95cf204
7.2.2. 资料
1 |
|
7.3. 网络笔记
[[用Redis实现分布式锁的血泪史-51CTO.COM]]
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Taylor!
评论