缓存击穿的终极最优方案是什么?
1. 先查缓存
2. 缓存查不到加锁
2.1 (优化方案先自旋几次再加锁)
2.2 (优化方案获取锁超时返回失败,但是失败率过高)
2.3 (获取锁超时后再查缓存,没查到还是返回失败)
3. 加锁后查数据库
4. 再查缓存
5. 讲数据放缓存
6. 释放锁
还有优化的点吗兄弟们?
#腾讯# #暑期实习# #实习# #Java# #后端# #缓存#
2. 缓存查不到加锁
2.1 (优化方案先自旋几次再加锁)
2.2 (优化方案获取锁超时返回失败,但是失败率过高)
2.3 (获取锁超时后再查缓存,没查到还是返回失败)
3. 加锁后查数据库
4. 再查缓存
5. 讲数据放缓存
6. 释放锁
还有优化的点吗兄弟们?
#腾讯# #暑期实习# #实习# #Java# #后端# #缓存#
全部评论
缓存预热+逻辑过期

加锁太早了
不想失败率过高,就阻塞获取锁+加锁前先双重校验下
热key不过期,布隆过滤器防穿透
用逻辑过期策略吧,异步缓存重建
锁分片
为啥查询要加锁
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享