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。

最新文章

  1. 基于Hexo和Github搭建博客
  2. java split进行字符串分割
  3. 【转载】解决Windows 10 局域网内共享的问题
  4. REST API (from IBM)
  5. Bzoj2007 [Noi2010]海拔
  6. SpringMVC学习系列(12) 完结篇 之 基于Hibernate+Spring+Spring MVC+Bootstrap的管理系统实现
  7. Class.forName、Class.class(属性)、getClass()的区别
  8. [转载]在instagram上面如何利用电脑来上传图片
  9. git项目初始化
  10. Linux System Programming -- Appendix
  11. 基于IPv6的数据包分析(第三组)
  12. java开发工具STS的下载及安装
  13. Canvas & SVG
  14. TCP简介(一)
  15. iCheck .js各种各样的插件 fuck Javascript
  16. 各种编译不通过xcode
  17. android 不能在子线程中更新ui的讨论和分析
  18. SNMP学习笔记之Python的netsnmp和pysnmp的性能对比
  19. Struts2自定义标签4自定义分页标签
  20. 131.007 Unsupervised Learning - Feature Selection | 非监督学习 - 特征选择

热门文章

  1. XML从入门到深入(超详细)
  2. 入门Kubernetes - YAML文件
  3. java 写webservice接口解析xml报文
  4. js笔记12
  5. Unity3D 本地数据持久化几种方式
  6. 使用 Docker 秒速搭建多版本 PHP 开发环境
  7. centos8 安装VNC配置远程连接
  8. 4.3Unicode和ASCII码
  9. 适合企业的CRM系统选型法则?
  10. RabbitMQ消息可靠性传输