redis分布式缓存的常见问题

1)缓存击穿

客户端恶意的访问一个不存在的数据,从而穿透缓存,请求到达数据库,频繁的发送这类请求,直接查询数据库,增加数据库的压力.

解决:
1.在缓存服务中缓存null值
2.用户黑名单(在网关,ip限流,限制相同ip直接封ip,黑名单存redis)
3.使用布隆过滤器(判断,一个数据可能存在或者一定不存在)
布隆过滤器:一个数据结构

2)缓存失效

某个缓存失效之后,大量的请求访问该数据,在第一个请求重建缓存回来之前,大量的请求发现缓存失效,都会去尝试重建缓存,从而导致数据库压力增加。

解决:

1、在重建缓存时,添加分布式锁

3)缓存雪崩

大量的缓存,在同一时刻一起失效。

解决:

1、新建缓存时,采用固定 + 随机数的方式设置过期时间
错开缓存过期时间

4)缓存预热

在项目运行之前,分析出热点数据,直接添加到缓存服务器中

Guess you like

Origin blog.csdn.net/qq_44982110/article/details/121555042