首页 > 其他 > 详细

ShardedJedis的使用

时间:2017-11-13 15:33:17      阅读:143      评论:0      收藏:0      [点我收藏+]

假定有2个 redis 服务实例(A和B)在运行,在客户端进行 set 操作:

set a0 xxx

set a1 xxx

set a2 xxx

set a3 xxx

我们希望a0, a1, a1, a3 分散保存在A和B中。

jedis 已经提供了这种功能:

<bean id="shardedJedisPool" class="redis.clients.jedis.ShardedJedisPool">
    <constructor-arg index="0">
        <bean class="redis.clients.jedis.JedisPoolConfig"></bean>
    </constructor-arg>
    <constructor-arg index="1">
        <list>
            <bean class="redis.clients.jedis.JedisShardInfo">
                <constructor-arg name="host" value="192.168.233.8"/>
                <constructor-arg name="port" value="6381"/>
            </bean>
            <bean class="redis.clients.jedis.JedisShardInfo">
                <constructor-arg name="host" value="192.168.233.8"/>
                <constructor-arg name="port" value="6379"/>
            </bean>
        </list>
    </constructor-arg>
</bean>

测试代码:

ShardedJedisPool pool = ctx.getBean(ShardedJedisPool.class);
StringBuilder sb = new StringBuilder();
sb.append(‘a‘);
for (int i = 0; i < 100; i++) {
    ShardedJedis jedis1 = pool.getResource();
    if (i > 0) {
        sb.delete(1, sb.length());
    }
    sb.append(i);
    System.out.println(sb.toString());
    Thread.sleep(1000);
    jedis1.set(sb.toString(), "ifuck");
    jedis1.close(); //记得关闭
}

这种思路是在客户端进行分片,但是如果分片服务器挂了呢?一致性哈希?

 

ShardedJedis的使用

原文:http://www.cnblogs.com/allenwas3/p/7826420.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!