memcached常见问题之血崩、穿透
来源:互联网 发布:ssh连接不上linux主机 编辑:程序博客网 时间:2024/05/05 00:16
> 什么是memcached?
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached是一款开源的、高性能的纯内存缓存服务软件。Mem是内存的意思,cache是缓存的意思,d是daemon的意思。Memcache服务分为客户端和服务端两部分,C/S架构。
Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。
>什么是缓存穿透?
一般的缓存系统,都是按照key去缓存查询,如果不存在对应的value,就应该去后端系统查找(比如DB)。如果key对应的value是一定不存在的,并且对该key并发请求量很大,就会对后端系统造成很大的压力。这就叫做缓存穿透。
或者这种解释更好理解:指用户查询数据,在数据库没有,自然在缓存中也不会有。这样就导致用户查询的时候,在缓存中找不到,每次都要去数据库中查询。从而导致对数据库不必要的压力。
如何避免?
> 什么是缓存血崩?
当缓存服务器重启或数据未加载到缓冲中或者大量缓存集中在某一个时间段大面积失效,这样在失效的时候,导致所有的请求都直接去数据库中查找数据,从而导致数据库cpu和内存负载过高,给后端系统(比如DB)带来很大压力。严重的情况下会出现数据库服务器宕机。大并发的缓存穿透会导致缓存血崩!!
如何避免?
1、分析用户行为,尽量让失效时间点均匀分布。避免缓存雪崩的出现。
2、如果是因为某台缓存服务器宕机,可以考虑做主备,比如:redis主备,但是双缓存涉及到更新事务的问题,update可能读到脏数据,需要好好解决。
3、采用一致性哈希算法,这也是目前主流的解决方案。具体详情见:http://blog.csdn.net/czz1141979570/article/details/78259617
- memcached常见问题之血崩、穿透
- memcached 常见问题
- memcached 常见问题
- memcached 常见问题
- Memcached雪崩和穿透
- Memcached雪崩和穿透
- Memcached之缓存雪崩,缓存穿透,缓存预热,缓存算法(7)
- Memcached之缓存雪崩,缓存穿透,缓存预热,缓存算法(7)
- memcached常见问题FAQ
- memcached 常见问题 翻译
- memcached 常见问题 翻译
- memcached 常见问题 翻译
- memcached之memcached介绍
- memcached之memcached安装
- memcached之memcached介绍
- memcached之memcached安装
- P2P之UDP穿透
- P2P之UDP穿透
- 利用fastjson将jsonobject对象转为map类型
- js获取地址栏参数
- Hive执行job时return code 2排查
- 使用telnet登录smtp服务发邮件
- NSCopying和NSCoding对象序列化反序列化基础详解
- memcached常见问题之血崩、穿透
- iOS的系统架构
- 时间同步
- 基于TCP的Socket通信
- 如何检测香港虚拟主机的访问速度及稳定性
- RTSP协议
- 1016. 部分A+B (15)
- 【云栖大会】YuMi机器人亮相阿里云栖大会
- VUE前端cookie操作