Memcached 之缓存雪崩现象、实际案例和缓存无底洞现象
2024-08-31 04:49:35
一、缓存雪崩现象
由于集群中某个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都会落在一个服务器上,那么在访问的时候也只会在一个服务器上查询。
最新文章
- 【工业串口和网络软件通讯平台(SuperIO)教程】九.重写通讯接口函数,实现特殊通讯方式
- Yii日志记录Logging
- 原生javascript和jquery实现简单的ajax例子
- yield汇编实现
- ASPNET登陆总结
- window批处理-3.go
- Jenkins: 1.x升级到2.x
- haar的简单应用(2)
- 在ionic中使用短信验证码倒计时
- 剑指Offer 52. 正则表达式匹配 (字符串)
- Installing Moses on Ubuntu 16.04
- [前端] html+css+javascript 实现选项卡切换效果
- 关于ajax访问webservice查询数据量稍微大一点,就会返回error500的解决方案
- Linux巩固记录(2) java项目的编译和执行
- Android MIME类型结构
- js+jquery检测用户浏览器型号(转)
- Linux命令: 在线使用linux命令环境
- 【线段树】【P4198】 楼房重建
- <;摘录>;MBR和分区表
- 通过 systemctl 设置自定义 Service
热门文章
- [tsA1490][2013中国国家集训队第二次作业]osu![概率dp+线段树+矩阵乘法]
- 08springMVC拦截器
- 对SPI、IIC、IIS、UART、CAN、SDIO、GPIO的解释
- 无管理员帐号的WIN7,如果使用自己的JDK版本?
- github在README中展示demo
- Zend_Form 创建、校验和解析表单的基础--(手冊)
- Android之使用MediaMetadataRetriever类获取视频第一帧
- 【POJ 1456】 Supermarket
- 【SDOI 2010】 魔法猪学院
- B3680 吊打xxx 物理???