美文网首页我爱编程
jedis分片原理剖析

jedis分片原理剖析

作者: 小雪的笔记 | 来源:发表于2018-04-09 20:20 被阅读0次

Redis2.0+版本不支持服务器分片,只能通过jedis分片,3.0+以上支持hash槽的服务端分片。jedis的详细分片实现如下,其中murmurhash是当前主流的分片算法。

/**

* 机器分片的方式

* 注意jedis服务器影响分片的两个因素

* 1、权重

* 2、添加的顺序

* @param args

*/

public static void main(String[] args){

TreeMap nodes = new TreeMap();

ShardJedisTest murmurHash = new ShardJedisTest();

List shards = new ArrayList();

JedisShardInfo jedisShardInfo1 = new JedisShardInfo("172.20.158.140", 5415,3000, 20);

jedisShardInfo1.setPassword("test1234");

shards.add(jedisShardInfo1);

JedisShardInfo jedisShardInfo2 = new JedisShardInfo("172.20.158.140", 5414,3000, 20);

jedisShardInfo2.setPassword("test1234");

shards.add(jedisShardInfo2);

for (int i = 0; i != shards.size();++i) {

final JedisShardInfo shardInfo = shards.get(i);

if (shardInfo.getName() == null)

for (int n = 0; n < 160 * shardInfo.getWeight(); n++) {

nodes.put(murmurHash.hash("SHARD-" + i + "-NODE-" + n), shardInfo);

}

else

for (int n = 0; n < 160 * shardInfo.getWeight(); n++) {

nodes.put(murmurHash.hash(shardInfo.getName()+ "*" + shardInfo.getWeight() + n), shardInfo);

}

}

String key ="USER_KEY_3010040405052";

long murmurhashCode = murmurHash.hash(key);

JedisShardInfo jedisShardInfo =null;

SortedMap tail = nodes.tailMap(murmurhashCode);

if (tail.size() == 0) {

jedisShardInfo = (JedisShardInfo) nodes.get(nodes.firstKey());

}

jedisShardInfo= tail.get(tail.firstKey());

System.out.println("key:"+key+" murmurhashCode:"+murmurhashCode+" jedisShardInfo:"+jedisShardInfo);

}

相关文章

  • jedis分片原理剖析

    Redis2.0+版本不支持服务器分片,只能通过jedis分片,3.0+以上支持hash槽的服务端分片。jedis...

  • Jedis路由key的算法剥离

    在Redis集群中,会有很多个分片,如果此时利用Jedis来操作此Redis集群,那么他会把数据路由到不到的分片上...

  • 你读过jedis源码吗?

    本文将对redis的java客户端jedis进行源码剖析,目的是让读者对jedis客户端有清楚的认识;代码结构如下...

  • iOS IP 直连原理剖析

    iOS IP 直连原理剖析 iOS IP 直连原理剖析

  • 3.文档索引极其管理

    1.倒排索引原理图 原理图: 2.指定分片数,分片副本数创建索引 (未指定情况下使用默认值) # 指定分片数(...

  • Jedis原理简介

    一、Jedis介绍 Jedis Client是Redis官网推荐的一个面向java客户端,库文件实现了对各...

  • Kafak原理

    Apache kafka原理 1 分片与副本机制 : 此处的分片指的是对topic中数据进行分片和建立副本, 一个...

  • mongDB 进阶(分片)

    分片架构图 第一章 分片的概念 1.有了副本集,为什么还需要分片? 2.分片的缺点 第2章 分片工作原理 1.路由...

  • jedis源码解析

    说明:本文的源代码是3.1.0版本 结论 总的来说,Jedis原理大概是这样的:a、首先创建Jedis创建时需要提...

  • Javaweb相关知识链接

    【总结】Tomcat原理剖析 【总结】Spring原理剖析 spring的controller是单例模式,但是是...

网友评论

    本文标题:jedis分片原理剖析

    本文链接:https://www.haomeiwen.com/subject/mrhwhftx.html