请选择 进入手机版 | 继续访问电脑版
设为首页 收藏本站
开启辅助访问

新浪微博登陆

只需一步, 快速开始

QQ登录

只需一步,快速开始

切换风格 立即注册 找回密码

Java教程网

Java教程网 门户 业界资讯 查看内容

缓存雪崩 缓存服务的分布 取模运算

2018-8-1 22:01| 发布者: wenzhilanyu| 查看: 95| 评论: 0|来自: csdn

摘要: 缓存雪崩当缓存处于单点情况下,一旦缓存服务器崩溃,所有的请求就会落到数据库层,此时,如果由于访问量过大则会导致数据库宕机,进而导致整个网站或服务不可用,这种缓存故障就是俗称的缓存雪崩解决方案1:解决缓 ...

缓存雪崩

当缓存处于单点情况下,一旦缓存服务器崩溃,所有的请求就会落到数据库层,此时,如果由于访问量过大则会导致数据库宕机,进而导致整个网站或服务不可用,这种缓存故障就是俗称的缓存雪崩

解决方案1:解决缓存雪崩故障,就得解决单点问题,提高缓存高可用性,建立分布式的高可用缓存系统,一台缓存服务器挂了,另外的一台起来继续工作,更不能影响其他的缓存系统。

解决方案2:使用缓存预热将常用的热词在缓存服务重启之前就把要缓存的热点数据加载到缓存中,这样就可以大大的江减轻对数据库的请求。

缓存穿透

如果某个key对应的数据不存在,而又未对该key做缓存,所以每次请求都会穿过缓存直接到数据库进行查询,并发量高的情况下进而导致数据库直接宕机,这就是缓存穿透。

解决方案:解决缓存穿透,如果做了缓存就要把null值或者空列表等也要缓存起来。如果是恶意攻击一个不存在的key,在控制层做频率限制是必须的。

多台缓存服务器同时使用怎样分配

1.将服务器按下列方法排列(一致性hash方式)若增加服务器,可以减少对服务器之前缓存内容的影响(如在0-10之间加服务器,定义为5,若按逆时针计算,则仅对5-10之间产生影响

一致性hash :

分布式环境算法   

将要存入缓存中的数据进行MD5加密  使用ord()转化为asscii码  转化为整形  求和 进行取模运算有几除几   余数是几就存到那个服务器上  一致性hash的优点在于加入和删除节点时只会影响到在哈希还种相邻的节点,而对其他节点没有影响。


鲜花

握手

雷人

路过

鸡蛋

最新评论

关闭

站长推荐 上一条 /1 下一条

小黑屋|手机版|Archiver|Java教程网    

GMT+8, 2018-12-17 05:37 , Processed in 0.156250 second(s), 26 queries .

Powered by Discuz X3.2

© 2001-2013 JAVA教程网

返回顶部