在redis缓存常见出错及解决方案
Redis  /  管理员 发布于 2年前   577
1:雷群问题(Thurder Hurd)
当缓存中的大量 key 同时过期时,就会出现这种情况。
然后,查询请求直接冲击数据库,导致数据库超载。
有两种方法可以缓解这一问题:
避免为 key 设置相同的过期时间,在配置中添加一个随机数;
只允许核心业务数据访问数据库,而在缓存恢复之前阻止非核心数据访问数据库。2:缓存渗透(Cache Penetration)
当缓存或数据库中不存在 key 时,就会发生这种情况。
应用程序无法从数据库中检索相关数据来更新缓存。
这个问题给缓存和数据库都造成了很大的压力。
要解决这个问题,有两种建议。
为不存在的 key 缓存一个空值,避免对数据库造成冲击。
使用 bloom 过滤器先检查 key 是否存在,如果 key 不存在,我们就可以避免对数据库的访问。3:缓存崩溃(Cache Breakdown)
这与雷群问题类似。
它发生在热键过期时。
大量请求会访问数据库。
解决方案:
由于热键占据了 80% 的查询量,我们不为它们设置过期时间。
4:缓存崩溃(Cache Crash)
当缓存崩溃时,所有请求都会进入数据库。
有两种方法可以解决这个问题。
设置断路器 (Circuit Breaker),当缓存宕机时,应用服务无法访问缓存或数据库。
为高速缓存建立一个集群,以提高高速缓存的可用性。test1 在
opencode + Oh-my-openagent,我的第一个免费的ai编程智能体管家:Sisyphus中评论 test..122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..Zita 在
Google AI Studio升级全栈 vibe coding体验,可直接构建带登录和数据库的应用中评论 111222..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号
