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