![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
架构师
架构师
DBA-fashion
熟悉MySQL运维
展开
-
解决redis缓存雪崩
2.如果是redis服务宕机,可以利用redis集群提高服务的高可用,例如哨兵机制主从集群,如果主机redis宕机,哨兵可以推选从机成主机,继续服务,从机复制主机上的数据防止数据丢失。3.给缓存业务添加降级限流策略,当缓存服务出问题时做快速失败,拒绝服务,避免直接请求数据库。1.同一时间大量的key同时失效或者redis宕机,大量请求直接访问数据库。1.如果是同一时间大量key失效,可以给不同的key的ttl添加随机值。4.给业务添加多级缓存,例如nginx缓存、jvm本地缓存。转载 2023-07-12 11:16:41 · 95 阅读 · 0 评论 -
解决redis缓存穿透
1.缓存中未找到,数据库也未找到,则缓存一个空对象,请求二次访问时,将缓存中的空对象返回。1.客户端请求的数据在数据库中没有,这样缓存永远不会生效,所有客户端请求都会访问数据库。4.可能造成短期的不一致,如果后来库里有了数据,只有等ttl过期后才能拿到非空数据。2.当访问的数据在布隆过滤器中不存在则直接拒绝,如果存在则放行到redis。5.可以在产生新数据的同时,更新一下缓存,这样短期的不一致也可以得到解决。1.在客户端请求到达redis之前,加一个布隆过滤器。4.实现复杂,存在误判的可能。转载 2023-07-12 11:25:29 · 100 阅读 · 0 评论