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>