jedis切片(集群)非切片(单机)实例(一)

2015-07-24 06:42:57 · 作者: · 浏览: 9
package testRedis;

importjava.util.ArrayList;

importjava.util.Iterator;

importjava.util.List;

importjava.util.Set;

importredis.clients.jedis.Jedis;

importredis.clients.jedis.JedisPool;

importredis.clients.jedis.JedisPoolConfig;

importredis.clients.jedis.JedisShardInfo;

importredis.clients.jedis.ShardedJedis;

importredis.clients.jedis.ShardedJedisPool;

importredis.clients.jedis.SortingParams;

importredis.clients.util.Pool;



/**

*@author WHD

*2015-4-19

*/

public classRedisClient {

// 获取数据库的连接,非切片客户端连接

privateJedis jedis;

// 非切片连接池

privateJedisPool jedisPool;

//切片客户端

privateShardedJedis shardedJedis;

// 切片连接池

privateShardedJedisPool shardedJedisPool;



// 构造函数

publicRedisClient(){

// 初始化连接池

initialPool();

// 初始化切片连接池

initialShardedPool();

// 从切片池中获取切片实例

shardedJedis=shardedJedisPool.getResource();

// 从非切片池中获取实例

jedis=jedisPool.getResource();

}



// 初始化非切片池

privatevoid initialPool(){

// 池的配置

JedisPoolConfig config= new JedisPoolConfig();

// 最大连接数

config.setMaxActive(20);

// 最大空闲连接数

config.setMaxIdle(5);

//获取连接时的最大等待毫秒数

config.setMaxWait(10001);

//在空闲时检查有效性, 默认false

config.setTestOnBorrow(false);

jedisPool= new JedisPool(config,"127.0.0.1",6379);

}



// 初始化切片池

private void initialShardedPool(){

// 池基本配置

JedisPoolConfig config= new JedisPoolConfig();

// 最大连接个数

config.setMaxActive(20);

// 最大空闲连接数

config.setMaxIdle(2);

//获取连接时的最大等待毫秒数

config.setMaxWait(10001);

// 在空闲时检查有效性,默认false

config.setTestOnBorrow(false);

//slave 连接, 这里实现了集群的功能,配置多个redis服务实现请求的分配进行负载均衡

List shards= newArrayList();

shards.add(newJedisShardInfo("192.168.0.106",6379,"master"));

shards.add(newJedisShardInfo("192.168.0.100",6379,"master"));

// 构造池

shardedJedisPool= newShardedJedisPool(config,shards);



}



public void show (){

KeyOperate();

StringOperate();

ListOperate();

// 释放连接

jedisPool.returnResource(jedis);

// 释放连接

shardedJedisPool.returnResource(shardedJedis);



}

//

private void KeyOperate(){

System.out.println("清空所有
数据库
"+jedis.flushDB()); // 判断key是否存在 System.out.println("判断key999建是否存在"+shardedJedis.exists("key999")); System.out.println("新曾key001value001键值对"+shardedJedis.set("key001","value001")); System.out.println("判断key001是否存在"+shardedJedis.exists("key001")); //输出系统中所有的key System.out.println("新增key002value002"+shardedJedis.set("key002","value002")); System.out.println("系统中的所有键如下:"); Set keys=jedis.keys("*"); Iterator it= keys.iterator(); while(it.hasNext()){ String key= it.next(); System.out.println(key); } // 删除某个key 如果不从在则忽略 System.out.println("系统中删除key002"+jedis.del("key002")); System.out.println("判断是否存在"+jedis.exists("key002")); // 设置key 001 的过期时间 System.out.println("设置key001的过期时间为五秒"+jedis.expire("key001",5)); try{ Thread.sleep(2000); }catch(Exception e){ e.printStackTrace(); } // 查看某个key的剩余时间 单位秒