一致性哈希速记

简介:

普通哈希:

var x = hash(dataKey) % N

一致性哈希:

将数据的key的hashcode与存放数据的节点(如缓存节点)的IP(或服务器名)的hashcode都分布到同一个环形数值空间,比如0~2^32-1。然后,把数据的hashcode沿着顺时针方向找第一个存放数据的节点的hashcode,找到的那个就是要存放的节点。

var dataValue = hash(dataKey) % N

var nodeValue = hash(nodeIP) % N

将dataValue沿数值空间顺时针寻找第一个nodeValue,找到的那个对应的node就是要存放数据的节点。

一致性哈希数据不均匀的问题:

通过增加虚拟节点的思路,为每个node设计多个虚拟节点(比如100个),虚拟节点可以在物理节点的IP的基础之上加上数字后缀。然后把虚拟节点hash分布到hash环。然后我们先按照上面的一致性哈希思路计算出需要存放的虚拟节点,然后再根据虚拟节点和物理节点的对应关系,找到具体的物理节点。

 


目录
相关文章
|
5月前
|
存储 算法 安全
【云计算与大数据技术】数据分片哈希算法、路由算法、复制算法的讲解(图文解释 超详细)
【云计算与大数据技术】数据分片哈希算法、路由算法、复制算法的讲解(图文解释 超详细)
91 0
|
7月前
|
存储 缓存 算法
数据结构与算法第十六讲:分布式算法之一致性Hash算法
数据结构与算法第十六讲:分布式算法之一致性Hash算法
|
8月前
|
存储 负载均衡 算法
一致性hash算法深入探究
一致性hash算法深入探究
45 0
|
机器学习/深度学习 存储 人工智能
啊哈 算法读书笔记 第 1 章 一大波数正在靠近——排序
首先出场的是我们的主人公小哼,上面这个可爱的娃就是啦。期末考试完了老师要将同 学们的分数按照从高到低排序。小哼的班上只有 5 个同学,这 5 个同学分别考了 5 分、 3 分、 5 分、 2 分和 8 分,哎考得真是惨不忍睹(满分是 10 分)。接下来将分数进行从大到小排序, 排序后是 8 5 5 3 2 。你有没有什么好方法编写一段程序,让计算机随机读入 5 个数然后将这 5 个数从大到小输出?
69 0
|
算法
算法竞赛100天第四天 —— 设计哈希表(散列表)
算法竞赛100天第四天 —— 设计哈希表(散列表)
算法竞赛100天第四天 —— 设计哈希表(散列表)
|
SQL 存储 缓存
风炉煮茶系列--闲聊下MySQL索引
主要介绍Mysql索引及原理,设计底层实现,优化建议等
78 0
|
存储 SQL NoSQL
【面试题系列】混合夺命21问,你能扛到第几问?
目录 1. Mysql索引在什么情况下会失效 2. MySql的存储引擎InnoDB与MyISAM的区别 3. mysql在项目中的优化场景,慢查询解决等 4. Mysql有什么索引,索引模型是什么 5. B-树与B+树的区别?为什么不用红黑树 6. Mysql主从同步怎么做 7. 乐观锁与悲观锁的区别? 8. 聊聊binlog日志 9. Redis 持久化有哪几种方式,怎么选? 9.1 AOF 持久化 9.2 RDB 9.3 如何选择RDB和AOF 10. Redis 主从同步是
298 0
【面试题系列】混合夺命21问,你能扛到第几问?
|
存储 算法 安全
【密码学】杂(瞎)谈(聊)哈希函数
本文依然是闲聊,不讲具体的算法内容,来一个小总结,相信大家看过我写过的文章之后,应该对于md系列算法 sha系列算法 sm3等哈希函数比较熟悉了,不熟悉的读者,我再来安利一下我之前写过的文章或者大家也可以去查阅相关的资料,在这里不再重复描述算法的具体内容了,本文呢,针对哈希函数来一个小小的总结,来看一下哈希函数有哪些公共的特性。
【密码学】杂(瞎)谈(聊)哈希函数
|
存储 缓存 弹性计算
嗖嗖嗖,想了解一致性Hash,看这一篇就可以了
嗖嗖嗖,想了解一致性Hash,看这一篇就可以了
199 0
嗖嗖嗖,想了解一致性Hash,看这一篇就可以了
|
存储 缓存 算法
漫画:什么是一致性哈希?
未来两年内,系统预估的总订单数量可达一亿条左右。 按Mysql单表存储500万条记录来算,暂时不必分库,单库30个分表是比较合适的水平分表方案。
漫画:什么是一致性哈希?