1.使用客户端的分配分片(可以自定义配置,缺点:节点增加,服务就要改代码,不灵活)
JedisPoolConfig poolConfig=new JedisPoolConfig();
JedisShardInfo jedisShardInfo1=new JedisShardInfo("127.0.0.1",6379);
jedisShardInfo1.setPassword("123456");
JedisShardInfo jedisShardInfo2=new JedisShardInfo("115.29.140.141",6800);
jedisShardInfo2.setPassword("Wang_Biao-22@1317");
List<JedisShardInfo> infos=Arrays.asList(jedisShardInfo1,jedisShardInfo2);
ShardedJedisPool shardedJedisPool=new ShardedJedisPool(poolConfig,infos);
ShardedJedis jedis=null;
try {
jedis=shardedJedisPool.getResource();
for (int i = 1; i <=100 ; i++) {
jedis.set("K"+i,""+i);
jedis.expire("K"+i,300);
}
for (int i = 0; i <100 ; i++) {
Client client=jedis.getShard("K"+i).getClient();
System.out.println("取到的值:"+jedis.get("K"+i)+","+"当前key位于:"+client.getHost()+":"+client.getPort());
}
} catch (Exception e) {
e.printStackTrace();
}finally {
if(jedis!=null){
jedis.close();
}
}
2.Twemproxy
3.Codis