java連線Redis的工具類

ruiguang21發表於2017-12-25
package com.yanshu.tools;


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


/**
 * Redis工具類
 * @author Administrator
 *
 */
public class JedisUtils {


//Redis伺服器IP
    private static String ADDR = "127.0.0.1";
    
    //Redis的埠號
    private static int PORT = 6379;
    
    //訪問密碼
    private static String AUTH = "123456";
    
    //可用連線例項的最大數目,預設值為8;
    //如果賦值為-1,則表示不限制;如果pool已經分配了maxActive個jedis例項,則此時pool的狀態為exhausted(耗盡)。
    private static int MAX_ACTIVE = 1024;
    
    //控制一個pool最多有多少個狀態為idle(空閒的)的jedis例項,預設值也是8。
    private static int MAX_IDLE = 200;
    
    //等待可用連線的最大時間,單位毫秒,預設值為-1,表示永不超時。如果超過等待時間,則直接丟擲JedisConnectionException;
    private static int MAX_WAIT = 10000;
    
    private static int TIMEOUT = 10000;
    
    //在borrow一個jedis例項時,是否提前進行validate操作;如果為true,則得到的jedis例項均是可用的;
    private static boolean TEST_ON_BORROW = true;
    
    private static JedisPool jedisPool = null;
    
    /**
     * 初始化Redis連線池
     */
    static {
        try {
            JedisPoolConfig config = new JedisPoolConfig();
            config.setMaxIdle(MAX_IDLE);
            config.setMaxWaitMillis(MAX_WAIT);
            config.setTestOnBorrow(TEST_ON_BORROW);
            jedisPool = new JedisPool(config, ADDR, PORT, TIMEOUT, AUTH);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    /**
     * 獲取Jedis例項
     * @return
     */
    public synchronized static Jedis getJedis() {
        try {
            if (jedisPool != null) {
                Jedis resource = jedisPool.getResource();
                return resource;
            } else {
                return null;
            }
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
    
    /**
     * 釋放jedis資源
     * @param jedis
     */
    public static void returnResource(final Jedis jedis) {
        if (jedis != null) {
            jedisPool.returnResource(jedis);
        }
    }


}

----------

package com.yanshu.tools;


import redis.clients.jedis.Jedis;


public class JedisUtilsTest {
public static void main(String[] args) {

/*Jedis jedis = new Jedis("106.75.132.229 ",6379);//建立連線
 jedis.auth("zxasqw123");//設定密碼
   jedis.select(13);//資料的索引
*/    
   
   String key = "rds:task-test";//資料表的名稱


  String val = "{'succeedDate': 1513152466.972549, 'taskUrl': ['https://hws.m.taobao.com/cache/wdetail/5.0/?id=521458057351 '], 'headers': {}, 'proxy': 'True', 'taskName': 'hbase', 'saveSite': 'testAuctionHbase'}";


   //store data in redis list
   //  jedis.lpush(key, val);
   //  jedis.lpush(key, val);


   //  System.out.println("Server is running: "+jedis.get("abc"));
  //getJedis
  Jedis jedis=JedisUtils.getJedis();
  System.out.println("00000"+jedis.ping());
   jedis.select(13);//資料的索引
   jedis.lpush(key, val);
   jedis.lpush(key, val);


     System.out.println("Server is running: "+jedis.get("abc"));
}


}

相關文章