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服务器。

  • 相关阅读:
    数据库
    Activity组件
    view,视图组件
    360导航板式
    service音乐播放
    service
    音乐播放器组件
    获取时间字符串
    JDK服务器存储
    数据库_黑名单练习_完善服务广播
  • 原文地址:https://www.cnblogs.com/tujia/p/5412998.html
Copyright © 2011-2022 走看看