Advertisement

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)

还没有任何评论哟~