測試redis叢集的兩種方式:分片和哨兵
阿新 • • 發佈:2018-12-25
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPoolConfig;
import redis.clients.jedis.JedisSentinelPool;
import redis.clients.jedis.JedisShardInfo;
import redis.clients.jedis.ShardedJedis;
import redis.clients.jedis.ShardedJedisPool;
public class JedisSentinelTest {
/**
* 哨兵模式連結redis
* @throws Exception
*/
public void jedisSentinelPool() throws Exception {
Set<String> sentinels = new HashSet<String>();
sentinels.add("哨兵的ip和埠");
sentinels.add("哨兵的ip和埠" );
sentinels.add("哨兵的ip和埠");
JedisSentinelPool jedisSentinelPool = new JedisSentinelPool("master的別名", sentinels,"密碼");
Jedis jedis = null;
try {
jedis = jedisSentinelPool.getResource();
jedis.set("hello", "world");
String value = jedis.get("hello" );
System.out.println(value);
} catch (Exception e) {
System.out.println(e);
} finally {
if (jedis != null)
try {
jedis.close();
jedisSentinelPool.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
/**
* 分片模式連結
*/
public static void jedisTest(){
JedisPoolConfig jedisConfig = new JedisPoolConfig();
jedisConfig.setMaxIdle(20);
jedisConfig.setTestOnBorrow(false);
JedisShardInfo info79 = new JedisShardInfo("IP","埠");
JedisShardInfo info81 = new JedisShardInfo("IP","埠");
JedisShardInfo info80 = new JedisShardInfo("IP","埠");
info79.setPassword("密碼");
info80.setPassword("密碼");
info81.setPassword("密碼");
List<JedisShardInfo> shards = new ArrayList<>();
shards.add(info79);
shards.add(info80);
shards.add(info81);
ShardedJedisPool shardedJedisPool = new ShardedJedisPool(jedisConfig, shards);
ShardedJedis ShardedJedis = null;
try {
ShardedJedis = shardedJedisPool.getResource();
} catch (Exception e) {
e.printStackTrace();
} finally{
ShardedJedis.close();
shardedJedisPool.close();
}
ShardedJedis.set("test", "測試");
String aaa = ShardedJedis.get("test");
System.out.println(aaa);
}
public static void main(String args[]){
jedisTest();
}
}