一、缓存雪崩现象

  由于集群中某个memcached服务器宕机的原因,造成集群中的服务器命中率下降。只能通过访问数据库得到数据,是的数据库的压力倍增,造成数据库服务器崩溃。重启数据库还是会崩溃,但是数据会缓存一部分,多次重启则缓冲建立完毕。或者缓冲周期性的失效,比如每6个小时失效一次,那么每6个小时会有一个“峰值”,严重的会造成数据库崩溃。

二、案例

  一个门户网站做的一个缓存,6小时缓存失效一次,失效后两个小时内mysql负载很高,然后mysql服务器挂掉。

  

  解决方案:

    1.缓存失效时间设置为随机3到9小时失效,让读取mysql数据库的次数分散开,而非集中在一定时间。

    2.将缓存时间调长,每天夜里刷新缓存数据。

三、缓存无底洞现象

  memcached连接频率升高,效率下降,于是就增加memcache服务器,但是这种问题依然存在,这种现象称之为“无底洞现象”。出现这种现象是因为随着用户的增多,用户的信息会随机的存储在更多的memcache服务器上(一致性哈希算法),在获取某个用户的信息时,会导致连接服务器的频率增加。

  解决方案:把某一组key,按共同前缀分布,比如:user表中的,user-133-name,user-133-age这2个key,在用分布式算法计算节点时,应该用“user-133”来计算,而不是用user-133-name/age来计算。2个关于个人信息的key都会落在一个服务器上,那么在访问的时候也只会在一个服务器上查询。

最新文章

  1. 【工业串口和网络软件通讯平台(SuperIO)教程】九.重写通讯接口函数,实现特殊通讯方式
  2. Yii日志记录Logging
  3. 原生javascript和jquery实现简单的ajax例子
  4. yield汇编实现
  5. ASPNET登陆总结
  6. window批处理-3.go
  7. Jenkins: 1.x升级到2.x
  8. haar的简单应用(2)
  9. 在ionic中使用短信验证码倒计时
  10. 剑指Offer 52. 正则表达式匹配 (字符串)
  11. Installing Moses on Ubuntu 16.04
  12. [前端] html+css+javascript 实现选项卡切换效果
  13. 关于ajax访问webservice查询数据量稍微大一点,就会返回error500的解决方案
  14. Linux巩固记录(2) java项目的编译和执行
  15. Android MIME类型结构
  16. js+jquery检测用户浏览器型号(转)
  17. Linux命令: 在线使用linux命令环境
  18. 【线段树】【P4198】 楼房重建
  19. <摘录>MBR和分区表
  20. 通过 systemctl 设置自定义 Service

热门文章

  1. [tsA1490][2013中国国家集训队第二次作业]osu![概率dp+线段树+矩阵乘法]
  2. 08springMVC拦截器
  3. 对SPI、IIC、IIS、UART、CAN、SDIO、GPIO的解释
  4. 无管理员帐号的WIN7,如果使用自己的JDK版本?
  5. github在README中展示demo
  6. Zend_Form 创建、校验和解析表单的基础--(手冊)
  7. Android之使用MediaMetadataRetriever类获取视频第一帧
  8. 【POJ 1456】 Supermarket
  9. 【SDOI 2010】 魔法猪学院
  10. B3680 吊打xxx 物理???