使用redis 缓存问题

发布时间 2023-09-22 00:14:44作者: wmw1213

1、穿透

概念:缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在,这样缓存永远不会生效,这些请求都会打到数据库

解决:

1.设置空值缓存:对于那些后端不存在的数据,在Redis中设置一个空值(null或空对象)缓存,以避免重复的后端访问。

2.、布隆过滤器:布隆过滤器是一种数据结构,用于快速判断一个元素是否存在于集合中 

        一定不存在  直接返回

       有可能存在  再查询缓存,没有,再查询数据库

Redisson直接有实现方案

异步加载数据:在缓存未命中时,可以使用异步加载数据的方式,先从后端获取数据并更新缓存,然后再返回结果给请求方,以避免阻塞。

2、击穿

概念:某一个热点数据的key突然过期,造成大量请求直达数据库,数据库宕机

解决 : 1、分布式锁

    2、热点数据永不过期

3、接口限流

3、雪崩

概念:在同一时段大量的缓存key同时失效或者Redis服务宕机,导致大量请求到达数据库,带来巨大压力

解决方案:1、随机过期时间

2、热点数据永不过期

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