1. 缓存穿透
指redis内存数据库中没有,访问持久层获取数据的过程。
解决方案:
1. 布隆过滤器。将所有可能存在的数据哈希到一个足够大的bitap中,不存在的时候被这个bitmap拦截掉,从而避免了访问持久层的压力。
2. 设置空值法,查询到的数据为空或者异常时,将这个数据的value设置为空放到redis中,下次就可以从缓存中取值了。
2. 缓冲雪崩
指某一个时间段,缓冲集中过期失效。
解决方案:
1. 延长缓存的失效时间
2. 给每一个缓存数据增加相应的缓存标记,记录缓存是否失效。如果缓存失效,则更新数据缓存。
3. 缓存预热
系统启动的时候,将需要缓存的数据加载到缓存中
4. 缓存更新
1. 定时的清理过期的缓存。
2. 请求时检查缓存是否过期,过期的话更新缓存。
5. 缓存降级
当访问量大的时候,可以通过一些方案,放弃一些数据的缓存机制,保证正常功能的缓存正常运行。
6. 缓存热点key
1. 互斥锁
2. 永不过期
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步