您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
memcached-缓存雪崩现象与缓存无底洞现象
发布时间:2017-11-22 17:38:49编辑:雪饮阅读()
缓存雪崩现象:
在多节点分布式缓存中,如果某个节点不存在或者大量的key在几乎同一时间失效的时候,那么将会去数据库中取值,这样以来数据库的压力倍增,可能导致数据库宕机。甚至可能要多次重启数据库才能恢复,因为缓存的建立需要时间,每次重启未必全部建立完成。
缓存雪崩现象的解决方案:
缓存的失效时间尽量随机均匀分布下,不要太集中,如果非要集中,则可使其在访问压力相对较低的时刻失效并逐渐建立缓存。
缓存的无底洞现象:
当memcached连接数较大时,需要多个memcached节点服务器来分担。
案例:
user-133-age:18;
user-133-height:1.75
user-134-age:19
user-134-height:1.8
像这样的key-val数据结构如果在相对少的memcached服务器群中,则同一个用户信息存在于相同的一个memcached节点服务器中的可能性比较大,那么有可能连接一次服务器则该用户的数据就会被取出。
但memcached服务器群比较庞大的时候,一个用户的信息被均匀分布的就更加散了,则取一个用户的信息可能要到之前那个服务器上只能取一部分信息,然后还要到其它服务器上继续取其它部分。对于之前那个memcached服务器来说,服务器增加的情况下并没有给他减少压力。
这就是缓存的无底洞现象。
缓存无底洞现象的解决方案:
对key计算分布式存储节点时相同的key前缀放在同一个节点上。
关键字词:memcached,雪崩