用hash做缓存,假如有三台服务器,1,2,3,有三万张图片,我想将图片平均缓存到我三台服务器上,一个服务器大概一万张,怎么去实现这个办法呢,可以用hash来取余数进行操作,加入我们是以图片的名字作为key进行hash计算,hash (图片名称)%N 其中N为我们服务器的个数,我们将hash(图片名称)这一部分进行计算后得到的是一个正数,然后除以服务器的数目进行取余数,结果将会是0,1,2三个数,对应我们的服务器的编号,当我们作为客户端去请求图片的时候,图片已经进行过hash运算了,直接找到对应服务器的编号进行图片的访问,这样解决了我需要遍历所有的服务器进行查找。

那如果我缓存的服务器的数量减少或者增加,如果还是按照原来的算法走,必定会造成缓存数据的丢失,会去向后端的服务器去请求,如果有一台缓存服务器发生了故障,那我原来缓存的位置必定会发生改变,原来本该运算后要进行缓存到某一台服务器的图片,现在找不到对应缓存服务器,肯定会发生缓存的雪崩

所以出现了一致性hash算法相当于将服务器和图片分别hash到我的hash环上进行就近缓存,hash环就是对2^32次方进行取模,从0开始一直到2^32,均匀分布在一个圆环(一个比方),0的顺时针方向的第一位为1,逆时针方向第一位为2^32,大概如下图

具体就是比方我有三个服务器A,B ,C对其进行 hash (服务器Aip)%2^32 得出来的一定是一个整数,而且一定是在0--2^32之间,那么这个数就会分布在hash环上对应的位置,相同的B,C都一样,假设我们hash过后ABC的位置如下图

然后我们将需要缓存图片的key进行hash,它的hash值也会分布在我的hash环上,

如上图,我hash到了A和C之间,图片的存储规则是顺时针方向的存储,所以应该存储到A,如果有四张的话如下图

那如果我们的hash算法将服务器和hash的图片存放位置比较相近,类似于;

所有的缓存都集中存储到了A一台,只有5到了B,那么这样A的压力就不言而喻,没有均匀可言了,辛亏hash环可以添加缓存服务器的虚拟节点,类似于虚拟机,一台实机可以虚拟多台,类似于这样:

这样的话就会尽可能的把缓存都均衡放在各个服务器

一致性hash算法的优势在哪:一个是当我有一台缓存节点挂了之后,缓存的存储不会受太大的影响,

我们将b节点拿走,本来要在B节点存储的3,因为找不到B服务器,而遵循规则缓存到C,而4的缓存节点不会发生改变,这就是一致hash的优点,如果发生服务器的增加或者减少只有部分的缓存会失效,不造成全盘皆输的可能

一致hash到此结束。

cdn缓存服务器有网站图片,CDN缓存服务器图片存储一致性hash算法的理解相关推荐

  1. cdn缓存服务器有网站图片,cdn缓存服务器上传图片

    cdn缓存服务器上传图片 内容精选 换一换 图片组件作为一个基本组件,用于展示图片.用户可以通过属性"图片地址",来选择图片. 体验馆提供了各场景下的无服务器构造方案,指导您端到端 ...

  2. 分布式缓存原理——一致性hash算法(hash环)、Hash槽

    一.一致性哈希算法:一种特殊的哈希算法,目前主要应用于分布式缓存当中,可以有效地解决分布式存储结构下动态增加和删除节点所带来的问题. 一致性Hash算法是对2^32取模,2^32个点组成的圆环称为Ha ...

  3. 部署虚拟服务器,把网站部署到虚拟服务器

    把网站部署到虚拟服务器 ·把网站部署到虚拟服务器 当然,这里指的搭建网站并非教大家如何去设计网站,而是通过现有的一些免费资源来进行网站搭建,如果您自己懂Dreamwaver,能够独立制作网站的话,那肯 ...

  4. 用云存储和CDN轻松搞定网站图片

    http://www.kuqin.com/web/20120207/317912.html "无图无真相,有视频更好".一般来说,网络用户都喜欢图片和视频,而不喜欢读干巴巴的文字. ...

  5. 图片网站用什么服务器好,网站图片与框架放在不同服务器有哪些优缺点

    如今很多企业线上发展迅速,对网站的要求也越来越高,因此出现分离式网站架构.怎样理解分离式网站架构呢?理解最简单的一种,即将图片与网站架构分开存放. 的确,现在很多企业都采取这样的操作模式,也有可能成为 ...

  6. 外贸网站 云服务器,外贸网站买哪个云服务器好

    外贸网站买哪个 服务器的稳定性 网站要想长期正常运转,服务器必须要稳定,如果服务器的性能不稳定,就算有再豪华的配置,也不能确保网站可以正常运行.如果服务器不稳定,网站可能随时打不开,这造成的损失将不可 ...

  7. 如何把网站迁移到云服务器上,网站如何进行云服务器转移

    网站如何进行 网站进行云服务器转移应做好以下准备: 选择合适的云服务器 网站既然需要进行服务器转移,说明现在所租用的服务器不能满足需求,那么我们在这次选择时务必要确定好将要转移的新服务器是否优质.一般 ...

  8. 网站需要数据库服务器吗,网站需要独立的服务器数据库吗

    网站需要独立的服务器数据库吗 内容精选 换一换 文档数据库服务提供使用数据管理服务(Data Admin Service,简称DAS).内网和公网的连接方式.文档数据库服务默认为您开通了远程主机登录权 ...

  9. bcc服务器搭建网站,如何用云服务器bcc建站

    如何用云服务器bcc建站 内容精选 换一换 由于通用型/内存优化型II代的云服务器与通用型/内存优化型I代的云服务器具有不同的虚拟化架构和不同的驱动类型,所以通用型/内存优化型I代云服务器创建的私有镜 ...

最新文章

  1. CLOCKS_PER_SEC表示一秒钟时钟的周期数
  2. .NET Core webapi 允许put请求方式配置文件
  3. pytorch笔记: 搭建Skip—gram
  4. 深度解析算法优化内部机制:为什么机器学习算法难以优化?
  5. Keras之ML~P:基于Keras中建立的回归预测的神经网络模型(根据200个数据样本预测新的5+1个样本)——回归预测
  6. java arraylist_死磕 java集合之ArrayList源码分析
  7. pandas聚合dataframe某一列的值中的所有元素
  8. linux top功能,[每日一题]说说Linux top命令的功能和用法
  9. 数据创建表 修改列 新增列
  10. 传统的主从复制的概念和要点
  11. #华为云在HC2018#华为云学院
  12. 2020-2021学年第二学期期末考试《药物治疗学》大作业
  13. css文字多余显示,css设置文字多余部分显示省略号
  14. 四阶龙格库塔方程(Rungekutta)解二阶常微分方程组并计算船舶在迎浪下的纵摇埀荡耦合运动方程-附Matlab代码
  15. const定义及初始化约束
  16. 沈航计算机学院杨华,【沈航新青年·实践】电子信息工程学院“电信筑梦,科技振兴”暑期社会实践活动纪实...
  17. [图形学] 基于图像的照明:镜面反射
  18. PHP 多任务秒级定时器的实现方法
  19. 使用化学烧伤创建自定义的详细木材燃烧图案
  20. 计算机一级wps考试方式,2015全国计算机一级WPSoffice考试方式和要求

热门文章

  1. 什么是数据资产?数据资产管理应该如何落地?
  2. 吴雪筠校友报告会 --职场仪表—心态—自强之道
  3. 【leetcode-DFS】求根节点到叶节点数字之和/二叉树的最大路径和/路径总和/左叶子之和/树的直径
  4. 百度快排探究(一),Python selenium 实现自然搜索访问目标网站
  5. php 跨站脚本,Piwigo register.php页面多个跨站脚本漏洞
  6. 【英语:语法基础】B1.核心语法-名词与代词
  7. 用linuxdeployqt打包程序遇到qmake找不到的问题如何解决
  8. DockerCon 2016 西雅图即将到来,8大主题详尽解读
  9. 慕课网跟练系列——定位和边距的区别弹出层的简单实例
  10. 管线探测仪在城市管网建设中的重要作用