java操纵redis工具类(切片链接池方式)

package com.redis;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.Set;
import com.alibaba.fastjson.JSON;
import redis.clients.jedis.JedisPoolConfig;
import redis.clients.jedis.JedisShardInfo;
import redis.clients.jedis.ShardedJedis;
import redis.clients.jedis.ShardedJedisPool;
import redis.clients.jedis.SortingParams;


/**
 * 
 *备注:使用ShardedJedisPool
 * 切片链接池   
 *提交:qinxuewu
 *时间:2015年8月20日下午4:40:57
 *
 */


public class RedisShardPoolUtil {
public  static ShardedJedisPool jedisPool ; //切片连接池
static {
try {
List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>();
shards.add( new JedisShardInfo("127.0.0.1",6379));
//shards.add( new JedisShardInfo("192.168.56.102", 6379) );

   JedisPoolConfig config = new JedisPoolConfig();  
   //设置最大连接数
   config.setMaxTotal(300);
   //设置最大空闲数
   config.setMaxIdle(600);
   //设置超时时间
   config.setMaxWaitMillis(3000);
     // 在应用初始化的时候生成连接池
   jedisPool = new ShardedJedisPool(config, shards);
} catch (Exception e) {
e.printStackTrace();
}
 }






/**
  * 向缓存中设置字符串内容
  * 失败返回0  不覆盖 成功 返回1
  * @param key key
  * @param value value
  * @return
  * @throws Exception
  */
public static long  setnax(String key,String value){
ShardedJedis client=null;
   try {
    //从切片池中获取实例
    client = jedisPool.getResource();
     return client.setnx(key, value);
   } catch (Exception e) {
     e.printStackTrace();
   }finally{
    client.close();
   }
   return 0;
 }

/** 成功返回  OK
  * 向缓存中设置对象(自动把对象转换成json数据存储到缓层中)
  * @param key 
  * @param value
  * @return
  */
public static long  setnx(String key,Object value){
ShardedJedis jedis=null;
   try {
     String objectJson = JSON.toJSONString(value);
     jedis = jedisPool.getResource();
     return jedis.setnx(key, objectJson);
    
   } catch (Exception e) {
     e.printStackTrace();      
   }finally{
    jedis.close();
   }
   return 0;
 }
 
/**
  * 删除缓存中得对象,根据key
  * @param key
  * @return
  */
public static boolean del(String key){
ShardedJedis jedis=null;
   try {
     jedis = jedisPool.getResource();
     jedis.del(key);
     return true;
   } catch (Exception e) {
     e.printStackTrace();
     return false;
   }finally{
    jedis.close();
   }
  
 }


/**
  * 根据key 获取内容
  * @param key
  * @return
  */
public static Object get(String key){
ShardedJedis jedis=null;
   try {
     jedis = jedisPool.getResource();
     Object value = jedis.get(key);
     return value;
   } catch (Exception e) {
     e.printStackTrace();
     return false;
   }finally{
    jedis.close();
   }
  
 }
 
 
/**
  * 根据key 获取对象
  * @param key
  * @return
  */
public static <T> T get(String key,Class<T> clazz){
ShardedJedis jedis=null;
   try {
     jedis = jedisPool.getResource();
     String value = jedis.get(key);
     return JSON.parseObject(value, clazz);
   } catch (Exception e) {
     e.printStackTrace();
     return null;
   }finally{
    jedis.close();
   }
 }
 
 
/***
 * 检查key是否存在
 * @param key
 * @return
 * true 存在
 * false 不存在
 */
public static boolean  checkExists(String key){
ShardedJedis jedis=null;
   try {
     jedis = jedisPool.getResource();
     return jedis.exists(key); 
   } catch (Exception e) {
      e.printStackTrace();
       return false;
   }finally{
    jedis.close();
   }

}


/***
* 往指定的key追加内容,key不在则添加key
* @param key
* @param value
* @return
*/
public static boolean appendStr(String key,String value){
ShardedJedis jedis=null;
   try {
     jedis = jedisPool.getResource();
     jedis.append(key, value);    
     return true;
   } catch (Exception e) {
      e.printStackTrace();
       return false;
   }finally{
    jedis.close();
   }
}




/***************************************hashes(哈希)类型*********************************************************/

/**
* 设置hash field 
* 如果存在不会设置返回0
* @param key
* @param field
* @param value
* @return  成功返回1,失败  0
*/
public static long hset(String key,String field,String value){
ShardedJedis jedis=null;
   try {
     jedis = jedisPool.getResource();
     return jedis.hset(key, field, value);    
   } catch (Exception e) {
      e.printStackTrace();
   
   }finally{
    jedis.close();
   }
return 0;



/**
* hget取值(value)
* @param key
* @param field
* @return
*/
public static Object hget(String key,String field){
ShardedJedis jedis=null;
   try {
     jedis = jedisPool.getResource();
     return jedis.hget(key, field) ;
   } catch (Exception e) {
      e.printStackTrace();
       return null;
   }finally{
    jedis.close();
   }
}

/**
* hmset 批量设置值
* @param key
* @param hashmap
* @return 成功返回OK
*/
public static String  hmset(String key,Map<String, String> hashmap){
ShardedJedis jedis=null;
   try {
     jedis = jedisPool.getResource();
     return jedis.hmset(key, hashmap);
   } catch (Exception e) {
      e.printStackTrace();  
   }finally{
    jedis.close();
   }
   return null;
}

/**
* hmget 批量取值(value)
* @param key
* @param field
* @return
*/
public static Object hmget (String key,String...fields){
ShardedJedis jedis=null;
   try {
     jedis = jedisPool.getResource();
     return jedis.hmget(key, fields);     
   } catch (Exception e) {
      e.printStackTrace();
       return null;
   }finally{
    jedis.close();
   }
}

/**
* @param key
* @return 返回所有的key和value
*/
public static Map<String, String> hgetall(String key){
ShardedJedis jedis=null;
   try {
     jedis = jedisPool.getResource();
     return jedis.hgetAll(key);     
   } catch (Exception e) {
      e.printStackTrace();
       return null;
   }finally{
    jedis.close();
   }
}

/**
* 指定自增,负数自减
* @param key
* @param field
* @param value
* @return
*/
public static long hincrby(String key,String field,long value){
ShardedJedis jedis=null;
   try {
     jedis = jedisPool.getResource();
     return jedis.hincrBy(key, field, value) ;    
   } catch (Exception e) {
      e.printStackTrace();
   }finally{
    jedis.close();
   }
return 0;
}

/***
* 删除一个或多个哈希表
* @param key
* @param fields
* @return
*/

public static long hdel(String key,String...fields){
ShardedJedis jedis=null;
   try {
     jedis = jedisPool.getResource();
     return jedis.hdel(key, fields);  
   } catch (Exception e) {
      e.printStackTrace();
   }finally{
    jedis.close();
   }
return 0;


/***************************************list(列表)*********************************************************/



/**
* lpush 设置值 从头部压入一个元素
* @param key
* @param strings
* @return 成功返回成员的数量  失败返回0
*/
public static long  lpush(String key,String...strings){
ShardedJedis jedis=null;
   try {
     jedis = jedisPool.getResource();
     return jedis.lpush(key, strings);
   } catch (Exception e) {
      e.printStackTrace();
   }finally{
    jedis.close();
   }
   return 0;
}

/**
* rpush 从尾部压入一个元素
* @param key
* @param strings
* @return 成功返回成员的数量  失败返回0
*/
public static long  rpush (String key,String...strings){
ShardedJedis jedis=null;
   try {
     jedis = jedisPool.getResource();
     return jedis.rpush (key, strings);
   } catch (Exception e) {
      e.printStackTrace();
   }finally{
    jedis.close();
   }
   return 0;
}

/**
* list列表取值(lrange)
* @param key
* @param start
* @param end
* @return start=0  end=-1(代表从开始到结束)
*/
public static Object lrange (String key,long start,long end){
ShardedJedis jedis=null;
   try {
     jedis = jedisPool.getResource();
     return jedis.lrange(key, start, end);
   } catch (Exception e) {
      e.printStackTrace();
   }finally{
    jedis.close();
   }
   return 0;
}

/**
* 从头部删除元素,并返回删除元素
* @param key
* @return
*/
public static String  lpop  (String key){
ShardedJedis jedis=null;
   try {
     jedis = jedisPool.getResource();
     
     return jedis.lpop(key);
   } catch (Exception e) {
      e.printStackTrace();
   }finally{
    jedis.close();
   }
return null;
 
}

/**
* 根据下表获取元素
* @param key
* @param index
* @return
*/
public static String lindex(String key,int index){
ShardedJedis jedis=null;
   try {
     jedis = jedisPool.getResource();
     return jedis.lindex(key, index);
   } catch (Exception e) {
      e.printStackTrace();
   }finally{
    jedis.close();
   }
return null;
}  

/**
* 获取列表对应的长度
* @param key
* @param index
* @return
*/
public static long llen (String key){
ShardedJedis jedis=null;
   try {
     jedis = jedisPool.getResource();
     return jedis.llen(key);
   } catch (Exception e) {
      e.printStackTrace();
   }finally{
    jedis.close();
   }
return 0;
}  


/***************************************set集合*********************************************************/

/**
* 向集合成添加一个或多个成员
* @param key
* @param members
* @return
*/
public static long sadd  (String key,String...members){
ShardedJedis jedis=null;
   try {
     jedis = jedisPool.getResource();
     return jedis.sadd(key, members) ;
   } catch (Exception e) {
      e.printStackTrace();
   }finally{
    jedis.close();
   }
return 0;
}  

/**
* 获取集合的成员个数
* @param key
* @param index
* @return
*/
public static long scard(String key){
ShardedJedis jedis=null;
   try {
     jedis = jedisPool.getResource();
     return jedis.scard(key);
   } catch (Exception e) {
      e.printStackTrace();
   }finally{
    jedis.close();
   }
return 0;
}  


/**
* 返回集合中的所有成员
* @param key
* @param index
* @return
*/
public static Set<String> smembers(String key){
ShardedJedis jedis=null;
   try {
     jedis = jedisPool.getResource();
     return jedis.smembers(key);
   } catch (Exception e) {
      e.printStackTrace();
   }finally{
    jedis.close();
   }
return null;
}  

/***************************************sorted set******************************************************/

/**
* 向有序集合中添加一个或多个成员,或者更新已存在成员的分数
* @param key
* @param scoreMembers
* @return
*/
public static long zadd (String key,Map<String, Double> scoreMembers){
ShardedJedis jedis=null;
   try {
     jedis = jedisPool.getResource();
     return jedis.zadd(key, scoreMembers); 
   } catch (Exception e) {
      e.printStackTrace();
   }finally{
    jedis.close();
   }
return 0;
}  

/***
* 排序
* @param key
* @param sortingParameters
* @return
*/
public static  List<String> sort(String key,SortingParams sortingParameters){
ShardedJedis jedis=null;
   try {
     jedis = jedisPool.getResource();
     return jedis.sort(key, sortingParameters);
   } catch (Exception e) {
      e.printStackTrace();
   }finally{
    jedis.close();
   }
return null;
}
/***
* 排序 从大到小
* @param key
* @param sortingParameters
* @return
*/
public static  List<String> sort(String key){
ShardedJedis jedis=null;
   try {
     jedis = jedisPool.getResource();
     SortingParams sort=new SortingParams();
     sort.desc();
     return jedis.sort(key,sort);
   } catch (Exception e) {
      e.printStackTrace();
   }finally{
    jedis.close();
   }
return null;
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值