redis故障时的一些概念
2024-10-08 08:17:55
1.缓存穿透
概念
访问一个不存在的key,缓存不起作用,请求会穿透到DB,流量大时DB会挂掉。
解决方案
采用布隆过滤器,使用一个足够大的bitmap,用于存储可能访问的key,不存在的key直接被过滤;
访问key未在DB查询到值,也将空值写进缓存,但可以设置较短过期时间。
2.缓存雪崩
概念
大量的key设置了相同的过期时间,导致在缓存在同一时刻全部失效,造成瞬时DB请求量大、压力骤增,引起雪崩。
解决方案
可以给缓存设置过期时间时加上一个随机值时间,使得每个key的过期时间分布开来,不会集中在同一时刻失效。
3.缓存击穿
概念
一个存在的key,在缓存过期的一刻,同时有大量的请求,这些请求都会击穿到DB,造成瞬时DB请求量大、压力骤增。
解决方案
在访问key之前,采用SETNX(set if not exists)来设置另一个短期key来锁住当前key的访问,访问结束再删除该短期key。
最新文章
- 基于Hexo和Github搭建博客
- java split进行字符串分割
- 【转载】解决Windows 10 局域网内共享的问题
- REST API (from IBM)
- Bzoj2007 [Noi2010]海拔
- SpringMVC学习系列(12) 完结篇 之 基于Hibernate+Spring+Spring MVC+Bootstrap的管理系统实现
- Class.forName、Class.class(属性)、getClass()的区别
- [转载]在instagram上面如何利用电脑来上传图片
- git项目初始化
- Linux System Programming -- Appendix
- 基于IPv6的数据包分析(第三组)
- java开发工具STS的下载及安装
- Canvas &; SVG
- TCP简介(一)
- iCheck .js各种各样的插件 fuck Javascript
- 各种编译不通过xcode
- android 不能在子线程中更新ui的讨论和分析
- SNMP学习笔记之Python的netsnmp和pysnmp的性能对比
- Struts2自定义标签4自定义分页标签
- 131.007 Unsupervised Learning - Feature Selection | 非监督学习 - 特征选择