1、缓存雪崩现象mysql
因为集群中某个memcached服务器宕机的缘由,形成集群中的服务器命中率降低。只能经过访问数据库获得数据,是的数据库的压力倍增,形成数据库服务器崩溃。重启数据库仍是会崩溃,可是数据会缓存一部分,屡次重启则缓冲创建完毕。或者缓冲周期性的失效,好比每6个小时失效一次,那么每6个小时会有一个“峰值”,严重的会形成数据库崩溃。算法
2、案例sql
一个门户网站作的一个缓存,6小时缓存失效一次,失效后两个小时内mysql负载很高,而后mysql服务器挂掉。数据库
解决方案:缓存
1.缓存失效时间设置为随机3到9小时失效,让读取mysql数据库的次数分散开,而非集中在必定时间。服务器
2.将缓存时间调长,天天夜里刷新缓存数据。分布式
3、缓存无底洞现象memcached
memcached链接频率升高,效率降低,因而就增长memcache服务器,可是这种问题依然存在,这种现象称之为“无底洞现象”。出现这种现象是由于随着用户的增多,用户的信息会随机的存储在更多的memcache服务器上(一致性哈希算法),在获取某个用户的信息时,会致使链接服务器的频率增长。网站
解决方案:把某一组key,按共同前缀分布,好比:user表中的,user-133-name,user-133-age这2个key,在用分布式算法计算节点时,应该用“user-133”来计算,而不是用user-133-name/age来计算。2个关于我的信息的key都会落在一个服务器上,那么在访问的时候也只会在一个服务器上查询。blog