Long k =
((long)(d[3+h*4]0xFF)24)
| ((long)(d[2+h*4]0xFF)16)
| ((long)(d[1+h*4]0xFF)8 )
| ((long)(d[0+h*4]0xFF));
// 在环上保存节点
consistentBuckets.put( k, servers[i] );
}
}
// 每个server一共分配4*factor个虚拟节点
}
// 用MD5来计算key的hash值
MessageDigest md5 = MD5.get();
md5.reset();
md5.update( key.getBytes() );
byte[] bKey = md5.digest();
// 取MD5值的低32位作为key的hash值
long hv = ((long)(bKey[3]0xFF)24) | ((long)(bKey[2]0xFF)16) | ((long)(bKey[1]0xFF)8 ) | (long)(bKey[0]0xFF);
// hv的tailMap的第一个虚拟节点对应的即是目标server
SortedMap tmap = this.consistentBuckets.tailMap( hv );
return ( tmap.isEmpty() ) ? this.consistentBuckets.firstKey() : tmap.firstKey();
更多问题到问题求助专区()
php分布式数据库的介绍就聊到这里吧 , 感谢你花时间阅读本站内容,更多关于php 分布式、php分布式数据库的信息别忘了在本站进行查找喔 。
- mongodb查看数据库大小 查看mongodb集群容量
- 纯phpmysql
- mysql数据库优化 mysql订单优化
- 查找php.ini phpredis查找
- 使用redis实现分布式锁及其优化 redis分布式性能
- mongodb数据丢失原因 为什么mongodb数据库一直在加载中
- mongodb 查看数据库 mongodb查询数据库表
- mongodb显示所有数据库 mongodb数据突然为空
- 屏蔽数据库的复杂性 mysql数据库屏蔽权限
- redis分布式锁死锁处理方案 redis宕机分布式锁
