2024-04-07 21:32阅读: 13评论: 0推荐: 0

【知识点】Redis-缓存-缓存击穿

缓存击穿:缓存中一个热点数据过期或失效时,由于该数据非常受欢迎,会有大量请求直接打到数据库上,导致数据库负载增大、相应变慢甚至瘫痪。

解决方式:

  1. 互斥锁

在查询数据库之前首先获取分布式锁,更新redis之后再释放锁,可以保证数据的强一致性。

redis-lock.png

优缺点:
优点:强一致性
缺点:性能差

  1. 逻辑过期

数据本身不设置过期时间,而是添加一个过期时间字段,发现数据过期后先获取分布式锁,获取到就开一个新线程来更新数据,旧线程直接返回过期数据,新线程更新redis数据和过期时间,并释放分布式锁。

redis-logic-expire.png

优缺点:
优点:线程不等待,性能优良
缺点:存在过期数据

本文作者:编程随写

本文链接:https://www.cnblogs.com/code-blog/p/18119981

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   code-blog  阅读(13)  评论(0编辑  收藏  举报
历史上的今天:
2023-04-07 使用Docker发布普通web项目(非springboot项目)
2023-04-07 IDEA导入普通web项目
2023-04-07 网页调用打印机(Lodop)使用记录
2023-04-07 项目中Latex处理笔记
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起