游客 你可以选择到 登录 注册帐号 忘记密码?
  • 服务热线:
    13999268016
分布式算法
一.客户端的haisql_memcache分布式算法
    当向haisql_memcache集群存入或取出key/value时,haisql_memcache客户端程序会根据一定的算法计算要存入哪台服务器,然后再把key/value值存到此服务器中。也就是说,把存取数据分为两个步骤,第一步是选择服务器,第二部才开始进行存储数据。
分布式结构图如下:


分布式算法:
   
选择服务器的算法有两种,一种是根据余数来计算分布,另一种是根据散列算法来计算分布。
    余数算法:先求得键的整数散列值,再除以服务器台数,根据余数确定存取服务器,这种方法计算简单,高效,但在haisql_memcache服务器增加或减少时,几乎所有的缓存都会失效。
    散列算法:先算出haisql_memcache服务器的散列值,并将其分布到0到2的32次方的圆上,然后用同样的方法算出存储数据的键的散列值并映射至圆上,最后从数据映射到的位置开始顺时针查找,将数据保存到查找到的第一个服务器上,如果超过2的32次方,依然找不到服务器,就将数据保存到第一台haisql_memcache服务器上。如果添加了一台haisql_memcache服务器,只在圆上增加服务器的逆时针方向的第一台服务器上的键会受到影响。

二.haisql_memcache访问模型

 
    由上面这张图的流程可以看出,haisql_memcache虽然是"分布式",但其实haisql_memcache的本身完全不具备分布式的功能,haisql_memcache的集群之间是不会相互通信的(与之形成对比的,比如说,某台服务器有数据更新时,会通知集群中其他机器更新或清除数据),而haisql_memcache的"分布式",是完全依赖于客户端的程序的实现。

 
咨询热线:13999268016
地址:新疆维吾尔自治区乌鲁木齐市水磨沟区南湖东路77号新疆上海科技合作基地八层801室 固话:6583723
返回首页 | 网站地图 | 联系我们
技术支持:创世网络
乌鲁木齐云山云海信息技术有限责任公司 版权所有 备案号:新ICP备17001390号
新公网安备 65010502000200号
网站访问人数: