本文介绍: 1、缓存雪崩:redis中大量key集体过期2、缓存穿透:大量请求根本不存在的key3、缓存击穿:redis中一个热点key过期(大量用户访问该热点key,但是热点key过期)1、缓存雪崩解决方案进行预先的热门词汇的设置,进行key时长的调整实时调整,监控哪些数据是热门数据,实时的调整key的过期时长使用锁机制一文读懂缓存穿透、缓存击穿、缓存雪崩及其解决方法Redis中的缓存穿透、雪崩、击穿的原因以及解决方案(详解)_redis缓存击穿_PeakXYH的博客-CSDN博客。
Redis是一个完全开源的,遵守BSD协议的,高性能的key–value的数据存储结构系统,它支持数据持久化,可以将内存中的数据保存在磁盘中。不仅支持简单的key–value类型的数据结构,同事还提供list,zset,hash等数据结构存储。Redis还支持master–slave模式的数据备份。最重要的是Redis读写速度快。在实际应用中,Redis会存在缓存雪崩、缓存穿透、缓存击穿等异常情况。
概述
1、缓存雪崩解决方案
2、缓存穿透解决方案
3、缓存击穿解决方案
Redis缓存中间件工作原理:
客户端Client发起一个查询请求Request的时候,首先去Redis缓存中查询,如果数据在Redis缓存中存在,则直接将缓存中的数据返回给客户端;如果数据在缓存中不存在,则继续查询数据库DB,如果数据在数据库DB中存在,则将该数据放入Redis缓存中,并返回给客户端Client,如果数据在数据库DB中也不存在,则直接返回null给客户端Client
缓存雪崩,缓存穿透,缓存击穿3者出现的根本原因:Redis命中率下降,请求直接打在DB上
正常情况下,大量的资源请求都会被redis响应,在redis得不到响应的小部分请求才会去请求DB,这样DB的压力是非常小的,是可以正常工作的(如下图)
一、缓存雪崩
问题原因
解决方案
1、针对大量key同时过期
2、针对redis发生故障
二、缓存穿透
解决方案
1、缓存空值或者默认值
2、非法请求限制
3、布隆过滤器
三、缓存击穿
解决方案
1、设置热点key的时候,不给key设置过期时间
2、使用分布式锁,保证同一时刻只能有一个查询请求重新加载热点数据到缓存中
总结
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。