几种连接redis的方法
依赖的包:
commons-pool2-2.2.jar,Jedis.jar
背景:
a.基于redis2.8的总结;
b.在服务器上的两台机器上装了redis,假设两台机器分别为node7,node8;
c.在每台机器上起了两个redis的server,端口分别为6379,6389。6379是主,6389是另一台机器的从;
d.在每台机器起了一个sentinel,sentinel中配置了四个master(G1234)分别为以上起了的四个server;
环境介绍完毕,怕自己以后忘了记一下自己用过的几种连接redis的方式,代码都是从网络上找的.
(1)ShardedJedisSentinelPool
ShardedJedisSentinelPool pool = null;
List<String> masters = new ArrayList<String>();
Set<String> sentinels = new HashSet<String>();
masters.add("G1");//机器一上的主
masters.add("G2");//机器二上的主
sentinels.add("机器一上的sentinels地址和端口");
sentinels.add("机器二上的sentinels地址和端口");
GenericObjectPoolConfig config = new GenericObjectPoolConfig();//common包
pool = new ShardedJedisSentinelPool(masters, sentinels, config,60000);//连接池
ShardedJedis jedis = pool.getResource();
jedis.set("test","20150909");
pool.returnResource(jedis);
(2)ShardedJedisPool
// 分片信息
List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>();
JedisShardInfo info= new JedisShardInfo("机器一的地址", 6379);//端口是主的端口
shards.add(info);
info= new JedisShardInfo("机器二的地址", 6379);//机器二的主
shards.add(info);
GenericObjectPoolConfig config = new GenericObjectPoolConfig();//common包
ShardedJedisPool pool = new ShardedJedisPool(config , shards);
ShardedJedis jedis = pool.getResource();
jedis.set("test", "20150909");
pool.returnResource(jedis);//返回到连接池
pool.destroy();