本文介绍使用PHP实现一致性Hash算法。
创建一个FlexiHash类,他有两个成员变量和三个方法:
$serverlist:保存服务器列表。
$isSorted:记录服务器列表是否已经排过序。
addServer:添加一个服务器到服务器列表中;
removeServer:从服务器列表中删除一个服务器;
lookup:在当前的服务器中寻找合适的服务器存放数据。
【示例】:
<?
...
分类:
编程语言 时间:
2015-07-07 22:56:53
阅读次数:
186
引入:当一台memcached服务器不能满足我们的要求时,需要布置多台服务器,那么问题来了,怎么确定一个数据该放在哪台服务器上呢?
一般有两种方案,一个是普通hash分布,另一个是一致性hash分布。
1. 普通hash分布
函数如下:
functionmHash($key){
$md5 = substr(md5($key),0,8);
$seed = ...
分类:
系统相关 时间:
2015-07-07 16:50:15
阅读次数:
149
转载自http://www.cnblogs.com/haippy/archive/2011/12/10/2282943.html一致性Hash算法背景 一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的,设计目标是为了解决因特网中的热点(Hot spot)问题....
分类:
编程语言 时间:
2015-07-05 14:52:29
阅读次数:
158
一致性Hash算法背景 一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得DHT可以在P2P环境中真正得到应用。 但.....
分类:
其他好文 时间:
2015-06-24 20:51:18
阅读次数:
189
一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正得到应用。 一致性hash算法提出....
分类:
其他好文 时间:
2015-06-23 23:03:45
阅读次数:
157
转自于:http://www.cnblogs.com/shanno/p/3958298.html?utm_source=tuicool数据分布是分布式存储系统的一个重要部分,数据分布算法至少要考虑以下三个因素:1) 故障域隔离。同份数据的不同副本分布在不同的故障域,降低数据损坏的风险;2) 负载均衡...
分类:
编程语言 时间:
2015-06-19 18:17:32
阅读次数:
190
阅读目录背景虚拟桶(virtual buckets)实现总结背景关于数据分片讨论最多的是一致性hash,然而它并不是分布式设计中的银弹百试百灵。 在数据稳定性要求比较高的场景下它的缺点是不能容忍的。比如在Redis分布式缓存设计中,使用一致性Hash进行key分片存储,通过虚拟节点最大化降低添加或删...
前言 大家应该都知道Memcached要想实现分布式只能在客户端来完成,目前比较流行的是通过一致性hash算法来实现.常规的方法是将 server的hash值与server的总台数进行求余,即hash%N,这种方法的弊端是当增减服务器时,将会有较多的缓存需要被重新分配且会造成缓 存分配不均匀的情况....
分类:
编程语言 时间:
2015-05-27 12:06:47
阅读次数:
139