栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Redi缓存穿透、击穿、雪崩

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Redi缓存穿透、击穿、雪崩

1、什么是Redis缓存穿透?

缓存穿透是指用Redis不存在的key频繁的高并发的查询,导致缓存无法命中,每次查询都需要去数据库进行查询,导致数据库的压力非常大。

解决方案:

(1)实现Api的限流、防御ddos、接口频率限制、网关实现黑名单。

(2)布隆过滤器。

2、什么是Redis缓存击穿?

当一个热点key,也就是经常使用到的key过期时,有多个请求同时访问该key,发现key已经过期,这时这些请求会同时查询数据库,将数据库数据缓存到Redis中,这会导致数据库的压力非常大。

解决方案:

(1)如果是服务器集群的情况下,使用分布式锁,获取到锁的jvm将数据查询出来缓存到Redis,没有获取到锁的请求先等待。

(2)如果是单台服务器,使用本地锁控制即可,和分布式锁原理一样。

(3)取消热点key的有效期,使其一直有效,或者延长key的有效期。

3、什么是缓存雪崩?

第一种情况:当数据库重启时,没有实现持久化,导致大批数据丢失,重启时去都会去查询数据库,对数据库的访问压力非常大大。

第二种情况:大量的key在同一时间过期,同样大批量的去查询数据库,压力也会非常大。

解决方案:

(1)配置持久化。

(2)设置key的过期时间随机或者设置key的过期时间不一样。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/871882.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号