我是靠谱客的博主 可靠小兔子,最近开发中收集的这篇文章主要介绍redis异常缓存穿透缓存雪崩缓存击穿,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

缓存穿透

客户端请求的数据,缓存和数据库中都没有数据

1缓存空对象 

优点:实现简单,维护方便

缺点:额外内存消耗(设置TTL缓存过期时间)

           数据短期不一致性(控制TTL过期时间)

2布隆过滤器

在客户端和redis中添加布隆过滤器         有一定的缓存穿透风险 

不通过的肯定没有,通过的也可能没有

优点:内存占用小

缺点:实现复杂,存在误判

缓存雪崩

同一时间内大量缓存key失效或者redis服务器宕机导致大量请求访问数据库

1给不同的数据添加随机的TTL(第一次使用缓存将批量数据从数据库导入redis)

2配置redis集群 主从 哨兵 集群 分片

3给缓存业务添加降级限流

4业务多级缓存 其他中间件 数据库mycat

缓存击穿

热点key问题,高并发的key突然失效且缓存重建业务比较复杂,导致大量请求瞬间访问数据库。

查询数据库重建缓存业务比较复杂且耗时严重,高并发

1互斥锁

2逻辑过期

最后

以上就是可靠小兔子为你收集整理的redis异常缓存穿透缓存雪崩缓存击穿的全部内容,希望文章能够帮你解决redis异常缓存穿透缓存雪崩缓存击穿所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部