zoukankan      html  css  js  c++  java
  • memcached缓存雪崩现象及解决办法

    1)什么是缓存雪崩?
    场景:一个访问很大的文章(论坛之类)的网站,使用memcached缓存用户查询过的文章。设置的缓存过期时间为6小时,所以没过6小时,缓存就会失效并重建一遍

    问题:
    过六小时时,一部分缓存开始失效(文章访问的时间不同,添加缓存到内存的时间有所不同,所以缓存在2个小时左右就缓存完毕了),大量访问查询直接请求mysql服务器,mysql服务器被拖垮;

    需要重启服务器(整个服务器重启),memcached所有缓存被清空,需要重新访问mysql重新建立缓存


    2)解决办法
    一、缓存失效时间不要放在服务器pv大的时间段,可以把失效时间调晚上
    操作:
    1、调整memcached失效时间为24小时或永不失效;
    2、写清空memcached缓存的脚本(flush_all);
    3、添加计划任务,晚上pv最小的时间,执行脚本,清空memcached缓存。


    二、分散缓存失效时间
    操作:
    缓存失效时间不能集中于同一个时间,例如设置失效时间为随机3到9小时,这样缓存失效时间就比较平均,同一时刻失效的缓存相对会少很多。
    这样即使缓存在pv大的时间失效了,也不至于拖垮mysql服务器。

  • 相关阅读:
    [oldboy-django][1初识django]阻止默认事件发生 + ajax + 模态编辑对话框
    第6章Zabbix分布式监控
    第5章Zabbix自动化监控
    第4章Zabbix监控实践
    第3章Zabbix完整监控
    第2章Zabbix基础进阶
    第1章1zabbix快速入门
    自动化利器-YUM仓库搭建实战
    CentOS7修改网卡为eth0
    NTP时间服务器
  • 原文地址:https://www.cnblogs.com/tujia/p/5412998.html
Copyright © 2011-2022 走看看