Redis 連接池配置及redis操作

redis連接池配置如下:


[java] view plain copy

  1. <span style="font-size:18px;">  

[java] view plain copy

  1. package com.ecshipper_manager.redis;  

  2.   

  3. import redis.clients.jedis.Jedis;  

  4. import redis.clients.jedis.JedisPool;  

  5. import redis.clients.jedis.JedisPoolConfig;  

  6.   

  7. public class RedisUtils {  

  8.   

  9.      //Redis服務器IP  

  10.      private static String ADDR = "127.0.0.1";  

  11.       //Redis的端口號  

  12.      private static int PORT = 6379;  

  13.      //可用連接實例的最大數目,默認值爲8;  

  14.      //如果賦值爲-1,則表示不限制;如果pool已經分配了maxActive個jedis實例,則此時pool的狀態爲exhausted(耗盡)。  

  15.      private static int MAX_ACTIVE = 1024;  

  16.      //控制一個pool最多有多少個狀態爲idle(空閒的)的jedis實例,默認值也是8。  

  17.      private static int MAX_IDLE = 200;  

  18.      //等待可用連接的最大時間,單位毫秒,默認值爲-1,表示永不超時。如果超過等待時間,則直接拋出JedisConnectionException;  

  19.      private static int MAX_WAIT = 10000;  

  20.            

  21.      //在borrow一個jedis實例時,是否提前進行validate操作;如果爲true,則得到的jedis實例均是可用的;  

  22.      private static boolean TEST_ON_BORROW = true;  

  23.      private static JedisPool jedisPool = null;  

  24.      /** 

  25.       * 初始化Redis連接池 

  26.       */  

  27.       static {  

  28.           try {  

  29.                JedisPoolConfig config = new JedisPoolConfig();  

  30.                config.setMaxTotal(MAX_ACTIVE);  

  31.                config.setMaxIdle(MAX_IDLE);  

  32.                config.setMaxWaitMillis(MAX_WAIT);  

  33.                config.setTestOnBorrow(TEST_ON_BORROW);  

  34.                jedisPool = new JedisPool(config, ADDR, PORT);  

  35.           } catch (Exception e) {  

  36.                e.printStackTrace();  

  37.           }  

  38.       }  

  39.         

  40.       /** 

  41.        * 獲取Jedis實例 

  42.        * @return 

  43.        */  

  44.       public synchronized static Jedis getJedis() {  

  45.           try {  

  46.               if (jedisPool != null) {  

  47.                   Jedis resource = jedisPool.getResource();  

  48.                   return resource;  

  49.               } else {  

  50.                   return null;  

  51.               }  

  52.           } catch (Exception e) {  

  53.               e.printStackTrace();  

  54.               return null;  

  55.           }  

  56.       }  

  57.              

  58.       /** 

  59.        * 釋放jedis資源 

  60.        * @param jedis 

  61.        */  

  62.        public static void returnResource(final Jedis jedis) {  

  63.            if (jedis != null) {  

  64.                 jedisPool.returnResourceObject(jedis);  

  65.            }  

  66.        }  

  67. }  

  68. </span>  



redis操作工具類


[java] view plain copy

  1. <span style="font-size:18px;">  

[java] view plain copy

  1. package com.ecshipper_manager.redis;  

  2.   

  3. import java.util.List;  

  4. import java.util.Set;  

  5. import org.springframework.stereotype.Component;  

  6. import redis.clients.jedis.Jedis;  

  7.   

  8. @Component("redisClient")  

  9. public class RedisClient {  

  10.   

  11.      /** 

  12.      * 通過key刪除(字節) 

  13.      * @param key 

  14.      */  

  15.     public void del(byte [] key){  

  16.         Jedis jedis = RedisUtils.getJedis();  

  17.         jedis.del(key);  

  18.         RedisUtils.returnResource(jedis);  

  19.     }  

  20.     /** 

  21.      * 通過key刪除 

  22.      * @param key 

  23.      */  

  24.     public void del(String key){  

  25.         Jedis jedis = RedisUtils.getJedis();  

  26.         jedis.del(key);  

  27.         RedisUtils.returnResource(jedis);  

  28.     }  

  29.   

  30.     /** 

  31.      * 添加key value 並且設置存活時間(byte) 

  32.      * @param key 

  33.      * @param value 

  34.      * @param liveTime 

  35.      */  

  36.     public void set(byte [] key,byte [] value,int liveTime){  

  37.         Jedis jedis = RedisUtils.getJedis();  

  38.         jedis.set(key, value);  

  39.         jedis.expire(key, liveTime);  

  40.         RedisUtils.returnResource(jedis);  

  41.     }  

  42.     /** 

  43.      * 添加key value 並且設置存活時間 

  44.      * @param key 

  45.      * @param value 

  46.      * @param liveTime 

  47.      */  

  48.     public void set(String key,String value,int liveTime){  

  49.         Jedis jedis = RedisUtils.getJedis();  

  50.         jedis.set(key, value);  

  51.         jedis.expire(key, liveTime);  

  52.         RedisUtils.returnResource(jedis);  

  53.     }  

  54.     /** 

  55.      * 添加key value 

  56.      * @param key 

  57.      * @param value 

  58.      */  

  59.     public void set(String key,String value){  

  60.         Jedis jedis = RedisUtils.getJedis();  

  61.         jedis.set(key, value);  

  62.         RedisUtils.returnResource(jedis);  

  63.     }  

  64.     /**添加key value (字節)(序列化) 

  65.      * @param key 

  66.      * @param value 

  67.      */  

  68.     public void set(byte [] key,byte [] value){  

  69.         Jedis jedis = RedisUtils.getJedis();  

  70.         jedis.set(key, value);  

  71.         RedisUtils.returnResource(jedis);  

  72.     }  

  73.     /** 

  74.      * 獲取redis value (String) 

  75.      * @param key 

  76.      * @return 

  77.      */  

  78.     public String get(String key){  

  79.         Jedis jedis = RedisUtils.getJedis();  

  80.          String value = jedis.get(key);  

  81.         RedisUtils.returnResource(jedis);  

  82.         return value;  

  83.     }  

  84.     /** 

  85.      * 獲取redis value (byte [] )(反序列化) 

  86.      * @param key 

  87.      * @return 

  88.      */  

  89.     public byte[] get(byte [] key){  

  90.         Jedis jedis = RedisUtils.getJedis();  

  91.         byte[] value = jedis.get(key);  

  92.         RedisUtils.returnResource(jedis);  

  93.         return value;  

  94.     }  

  95.   

  96.     /** 

  97.      * 通過正則匹配keys 

  98.      * @param pattern 

  99.      * @return 

  100.      */  

  101.     public Set<String> keys(String pattern){  

  102.         Jedis jedis = RedisUtils.getJedis();  

  103.         Set<String> value = jedis.keys(pattern);  

  104.         RedisUtils.returnResource(jedis);  

  105.         return value;  

  106.     }  

  107.   

  108.     /** 

  109.      * 檢查key是否已經存在 

  110.      * @param key 

  111.      * @return 

  112.      */  

  113.     public boolean exists(String key){  

  114.         Jedis jedis = RedisUtils.getJedis();  

  115.         boolean value = jedis.exists(key);  

  116.         RedisUtils.returnResource(jedis);  

  117.         return value;  

  118.     }  

  119.       

  120.     /*******************redis list操作************************/  

  121.     /** 

  122.      * 往list中添加元素 

  123.      * @param key 

  124.      * @param value 

  125.      */  

  126.     public void lpush(String key,String value){  

  127.         Jedis jedis = RedisUtils.getJedis();  

  128.         jedis.lpush(key, value);  

  129.         RedisUtils.returnResource(jedis);  

  130.     }  

  131.       

  132.     public void rpush(String key,String value){  

  133.         Jedis jedis = RedisUtils.getJedis();  

  134.         jedis.rpush(key, value);  

  135.         RedisUtils.returnResource(jedis);  

  136.     }  

  137.       

  138.     /** 

  139.      * 數組長度 

  140.      * @param key 

  141.      * @return 

  142.      */  

  143.     public Long llen(String key){  

  144.         Jedis jedis = RedisUtils.getJedis();  

  145.         Long len = jedis.llen(key);  

  146.         RedisUtils.returnResource(jedis);  

  147.         return len;  

  148.     }  

  149.       

  150.     /** 

  151.      * 獲取下標爲index的value 

  152.      * @param key 

  153.      * @param index 

  154.      * @return 

  155.      */  

  156.     public String lindex(String key,Long index){  

  157.         Jedis jedis = RedisUtils.getJedis();  

  158.         String str = jedis.lindex(key, index);  

  159.         RedisUtils.returnResource(jedis);  

  160.         return str;  

  161.     }  

  162.       

  163.     public String lpop(String key){  

  164.         Jedis jedis = RedisUtils.getJedis();  

  165.         String str = jedis.lpop(key);  

  166.         RedisUtils.returnResource(jedis);  

  167.         return str;  

  168.     }  

  169.       

  170.     public List<String> lrange(String key,long start,long end){  

  171.         Jedis jedis = RedisUtils.getJedis();  

  172.         List<String> str = jedis.lrange(key, start, end);  

  173.         RedisUtils.returnResource(jedis);  

  174.         return str;  

  175.     }  

  176.     /*********************redis list操作結束**************************/  

  177.       

  178.     /** 

  179.      * 清空redis 所有數據 

  180.      * @return 

  181.      */  

  182.     public String flushDB(){  

  183.         Jedis jedis = RedisUtils.getJedis();  

  184.         String str = jedis.flushDB();  

  185.         RedisUtils.returnResource(jedis);  

  186.         return str;  

  187.     }  

  188.     /** 

  189.      * 查看redis裏有多少數據 

  190.      */  

  191.     public long dbSize(){  

  192.         Jedis jedis = RedisUtils.getJedis();  

  193.         long len = jedis.dbSize();  

  194.         RedisUtils.returnResource(jedis);  

  195.         return len;  

  196.     }  

  197.     /** 

  198.      * 檢查是否連接成功 

  199.      * @return 

  200.      */  

  201.     public String ping(){  

  202.         Jedis jedis = RedisUtils.getJedis();  

  203.         String str = jedis.ping();  

  204.         RedisUtils.returnResource(jedis);  

  205.         return str;  

  206.     }  

  207. }  

  208. </span>  


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章