ShardedJedis的使用

Posted 偶尔发呆

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ShardedJedis的使用相关的知识,希望对你有一定的参考价值。

假定有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的使用的主要内容,如果未能解决你的问题,请参考以下文章

Jedis下的ShardedJedis

JedisShardInfo 怎么配置密码

Redis的JAVA连接

Jedis/JedisPool和Redis数据类型与特性

微信小程序代码片段

webstorm代码片段的创建