java 操做redis基本工具類

package com.redis;
import java.io.IOException;
import java.util.Map;
import java.util.ResourceBundle;

import com.alibaba.fastjson.JSON;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import redis.clients.jedis.ShardedJedis;


/**
 *非切片連接池
 *備註:redis鏈接池 操做工具類
 *提交:qinxuewu
 *時間:2015年8月19日上午8:59:24
 *
 */
public class RedisUtil {
	public  static  JedisPool jedisPool; // 池化管理jedis連接池
	
	static {	    
			 	JedisPoolConfig config = new JedisPoolConfig();  
			    //設置最大鏈接數
			    config.setMaxTotal(300);
			    //設置最大空閒數
			    config.setMaxIdle(600);
//			    //設置超時時間
			    config.setMaxWaitMillis(10000);
			    //初始化鏈接池
			    jedisPool = new JedisPool(config, "127.0.0.1",6379); 
	  }
	
	
	
	
	/**
	 * 獲取 redis連接
	 * @return
	 * 2017年9月13日
	 */
	public static Jedis getResource(){
		   return jedisPool.getResource();
	}
	
	
	/************************************************String Key 類型*******************************************/
	
	 /**
	   * 向緩存中設置字符串內容
	   * 失敗返回0  不覆蓋 成功 返回1
	   * @param key key
	   * @param value value
	   * @return
	   * @throws Exception
	   */
	public static long  setnx(String key,String value){
	    Jedis jedis = null;
	    try {
	      jedis = jedisPool.getResource();
	     
	      return jedis.setnx(key, value);
	    } catch (Exception e) {
	      e.printStackTrace();
	    }finally{
	    	jedis.close();
	    }
	   
	    return 0;
	  }
	
	 
	 /** 成功返回  OK
	   * 向緩存中設置對象(自動把對象轉換成json數據存儲到緩層中)
	   * @param key 
	   * @param value
	   * @return
	   */
	public static long  setnx(String key,Object value){
	    Jedis 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){
	    Jedis 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){
	    Jedis 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){
	    Jedis 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){
		Jedis 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){
		Jedis jedis = null;
	    try {
	      jedis = jedisPool.getResource();
	      jedis.append(key, value);	    
	      return true;
	    } catch (Exception e) {
	       e.printStackTrace();
	        return false;
	    }finally{
	    	jedis.close();
	    }
	}
	
	/***
	 * 批量獲取key的value值
	 * @param keys
	 * @return
	 */
	public static Object bathKey(String[] keys){
		Jedis jedis = null;
	    try {
	      jedis = jedisPool.getResource();
	      return jedis.mget(keys);    
	    } catch (Exception e) {
	       e.printStackTrace();
	        return null;
	    }finally{
	    	jedis.close();
	    }
		
	}
	
	/***************************************hashes(哈希)類型*********************************************************/
	
	/**
	 * 設置hash field 
	 * 若是存在不會設置返回0
	 * @param key
	 * @param field
	 * @param value
	 * @return  成功返回1,失敗  0
	 */
	public static long hsetnx(String key,String field,String value){
		Jedis jedis = null;
	    try {
	      jedis = jedisPool.getResource();
	      return jedis.hsetnx(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){
		Jedis 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){
		Jedis 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){
		Jedis 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){
		Jedis jedis = null;
	    try {
	      jedis = jedisPool.getResource();
	      return jedis.hgetAll(key);	     
	    } catch (Exception e) {
	       e.printStackTrace();
	        return null;
	    }finally{
	    	jedis.close();
	    }
	}
	
	
	/***************************************list(列表)*********************************************************/
	
	
	
	/**
	 * lpush 設置值 從頭部壓入一個元素
	 * @param key
	 * @param strings
	 * @return 成功返回成員的數量  失敗返回0
	 */
	public static long  lpush(String key,String...strings){
		Jedis jedis = null;
	    try {
	      jedis = jedisPool.getResource();
	      return jedis.lpush(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){
		Jedis jedis = null;
	    try {
	      jedis = jedisPool.getResource();
	      return jedis.lrange(key, start, end);
	    } catch (Exception e) {
	       e.printStackTrace();
	    }finally{
	    	jedis.close();
	    }
	    return 0;
	}
	
	

	
	public static String  rpoplpush(String key,String dstkey){
		Jedis jedis = null;
	    try {
	      jedis = jedisPool.getResource();
	      return jedis.rpoplpush(key, dstkey);
	    } catch (Exception e) {
	       e.printStackTrace();
	    }finally{
	    	jedis.close();
	    }
	    return null;
	}
	
	public static String  rpop(String key){
		Jedis jedis = null;
	    try {
	      jedis = jedisPool.getResource();
	      return jedis.rpop(key);
	    } catch (Exception e) {
	       e.printStackTrace();
	    }finally{
	    	jedis.close();
	    }
	    return null;
	}
}
相關文章
相關標籤/搜索