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的剩余时间 单位秒