memcache雪崩

缓存雪崩一般是由某个缓存节点失效,导致其他节点的缓存命中率下降, 缓存中缺失的数据(memcache经典场景,当有一个客户端的服务请求过来的时候,首先去查memcache,memcache里面是否缓存过了这个数据,如果没有这个数据,我们就去数据库查询,如果有这个数据,我们就从memcache里面取出来,然后给它返回到客户端,这是一个经典的查询过程,在这个场景中,缓存中缺失的数据,是因为它的缓存节点失效了,所以缺失的数据将去数据库查询。去数据库查询.短时间内,造成数据库服务器崩溃.重启 DB,短期又被压跨,但缓存数据也多一些.DB 反复多次启动多次,缓存重建完毕,DB 才稳定运行.或者,是由于缓存周期性的失效,比如每 8小时失效一次,那么每 8小时,将有一个请求”峰值”,严重者甚至会令 DB 崩溃.  上图是之前部门的一个缓存的真实现象,具体是这样的 缓存的数据设置成为每8个小时失效一次,导致最终的结果是每8个小时数据库的压力就变大一次,每8个小时我们的数据库就会迎来一次请求的高峰,因为之前设置的缓存已经失效了。最终导致数据库的压力变得非常大。

时间: 2024-11-08 22:02:47

memcache雪崩的相关文章

Memcache和Redis复习总结

Memcache Memcache是一个高性能的分布式的内存对象缓存系统,主要是用来缓存从MySQL数据库中查询的数据,减少对mysql数据库的压力. Memcache的工作流程: 当用户发生一个动态请求的时候,先去Memcache服务器里面查询缓存数据,当首次查询的时候,Memcache里面肯定是没有数据的,这个时候需要php程序去MySQL数据库里面获取数据,将获取先缓存一份到Memcache服务器里面,在把数据返回给用户.当第二次发生相同的动态的请求的时候,这个时候由于上一次上Memcac

memcache缓冲雪崩现象

原因1: 一般是由于某个节点实效,导致其他节点命中率下降,缓冲中缺失的数据又去数据库查找, 在短时间内造成数据库服务器奔溃. 原因2:缓冲周期性实效,比如6小时,那么每6小时就有一个缓冲峰值,严重的甚至会使DB崩溃. 重启可以吗?重启DB短期内又被压垮,但是缓冲数据多了一些,反复重启多次,缓冲才重建完毕,服务器稳定运行. 解决方案: 1 失效尽量放在晚上,因为晚上相对,访问量和并发不会很大,可以跑脚本清除缓冲. 2 双备份. 3 随机失效,假如缓冲的周期为6小时,我们可以随机设置3-9小时失效,

缓存穿透与缓存雪崩

缓存穿透 什么是缓存穿透? 一般的缓存系统,都是按照key去缓存查询,如果不存在对应的value,就应该去后端系统查找(比如DB).如果key对应的value是一定不存在的,并且对该key并发请求量很大,就会对后端系统造成很大的压力.这就叫做缓存穿透. 如何避免? 1:对查询结果为空的情况也进行缓存,缓存时间设置短一点,或者该key对应的数据insert了之后清理缓存. 2:对一定不存在的key进行过滤.可以把所有的可能存在的key放到一个大的Bitmap中,查询时通过该bitmap过滤.[感觉

memcache概述

一.memcache概述 1.介绍 memcache一款高性能的分布式的内存缓存系统,他是将我们的数据以键值对的形式存放在内存,从而可以提高数据的访问速度,从而提高网站的整体的响应速度. 原理图: 介质访问速度:数据库<文件<内存 memcache的使用场景: 因为memcache是将数据存放在内存中,不可将数据同步到硬盘中(不可以持久化),电脑一旦关机,内存中的数据就会丢失,所以不要存放重要的数据. 一般数据变化频繁,但是不重要的数据我们可以使用memcache缓存起来 2.memcache

缓存穿透与缓存雪崩(转)

缓存穿透 什么是缓存穿透? 一般的缓存系统,都是按照key去缓存查询,如果不存在对应的value,就应该去后端系统查找(比如DB).如果key对应的value是一定不存在的,并且对该key并发请求量很大,就会对后端系统造成很大的压力.这就叫做缓存穿透. 如何避免? 1:对查询结果为空的情况也进行缓存,缓存时间设置短一点,或者该key对应的数据insert了之后清理缓存. 2:对一定不存在的key进行过滤.可以把所有的可能存在的key放到一个大的Bitmap中,查询时通过该bitmap过滤.[感觉

大型网站优化-memcache技术

大型网站优化-memcache技术 memory+cache 内存缓存 memcache简介 memcache是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,目前被许多网站使用以提升网站的访问速度,尤其对于一些大型的.需要频繁访问数据库的网站访问速度提升效果十分显著 .这是一套开放源代码软件,以BSD license授权发布.[摘取自百度百科] 官网:http://memcached.org/ 分布式:多台Memcache服务器来管理数据的架构. 缓存

缓存雪崩问题

一.什么是缓存雪崩 从下图可以很清晰出什么是缓存雪崩: 1. 由于Cache层承载着大量请求,有效的保护了Storage层(通常认为此层抗压能力稍弱),所以Storage的调用量实际很低,所以它很爽. 2. 但是,如果Cache层由于某些原因(宕机.cache服务挂了或者不响应了)整体crash掉了,也就意味着所有的请求都会达到Storage层,所有Storage的调用量会暴增,所以它有点扛不住了,甚至也会挂掉  雪崩问题在国外叫做:stampeding herd(奔逃的野牛),指的的cache

memcache分布式部署的原理分析

下面本文章来给各位同学介绍memcache分布式部署的原理分析,希望此文章对你理解memcache分布式部署会有所帮助哦. 今天在封装memcache操作类库过程中,意识到一直以来对memcache的使用都是局限在单台服务器的情况下,还没有使用到memcache的分布式部署.虽然知道memcache的分布式是怎么回事,但是为了更加深入的理解,还是通过谷歌搜索了这方面的相关资料. 下面是精摘于网络的一些关于 memcache分布式部署 的资料. memcache分布式部署是什么呢?下面通过一个例子

缓存雪崩,缓存穿透解决方案(转载)

http://www.cnblogs.com/jinjiangongzuoshi/archive/2016/03/03/5240280.htmlcc 1. 缓存穿透:查询一个必然不存在的数据.比如文章表,查询一个不存在的id,每次都会访问DB,如果有人恶意破坏,很可能直接对DB造成影响. 解决办法:对所有可能查询的参数以hash形式存储,在控制层先进行校验,不符合则丢弃. 2.缓存失效:如果缓存集中在一段时间内失效,DB的压力凸显.这个没有完美解决办法,但可以分析用户行为,尽量让失效时间点均匀分