Consistent hash analysis of ShardedJedi in Jedis
发布时间
阅读量:
阅读量
ShardedJedis借助一致性哈希机制构建分布式缓存系统。其核心实现逻辑如下:
1、Redis服务器节点的划分方式:通过哈希算法将每台服务器节点细分为160个虚拟节点(该数值可进行配置调整,并赋予不同权重),所有虚拟节点信息均以TreeMap结构进行存储;
2、针对每台Redis服务器的物理连接信息,采用LinkedHashMap方式进行存储管理;
3、对于Key或KeyTag,使用相同的哈希算法进行计算,随后从TreeMap中查找大于等于该键哈希值的节点,并选取最接近的节点用于数据存储;若Key的哈希值超过了所有虚拟节点的最大哈希值,则将其存储至第一个虚拟节点中。
在ShardedJedis中所应用的哈希算法包括MD5与MurmurHash两种类型,默认情况下采用的是64位版本的MurmurHash算法;
关于ShardedJedis源码解析部分:
对应的代码实现如下:
List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>();
JedisShardInfo jedisShardInfo = new JedisShardInfo("192.168.77.130",16379);
JedisShardInfo jedisShardInf
全部评论 (0)
还没有任何评论哟~
