京东6.18大促主会场领京享红包更优惠

 找回密码
 立即注册

QQ登录

只需一步,快速开始

RedisUtil工具类

2020-6-3 22:59| 发布者: zhaojun917| 查看: 1473| 评论: 0

摘要: 转载:http://blog.csdn.net/liuxiao723846/article/details/504014061、使用了jedis客户端,对redis进行了封装,包括:1)使用了redispool获取连接;以及连接的回收;2)常用五种数据结构的常用操作封装; 1 packag ...

转载:http://blog.csdn.net/liuxiao723846/article/details/50401406

1、使用了jedis客户端,对redis进行了封装,包括:

1)使用了redispool获取连接;以及连接的回收;

2)常用五种数据结构的常用操作封装;

复制代码
复制代码
   1 package redis.utils;
   2 
   3 import java.util.List;
   4 import java.util.Map;
   5 import java.util.Set;
   6 
   7 //import org.apache.log4j.Logger;
   8 
   9 
  10 import redis.clients.jedis.Jedis;
  11 import redis.clients.jedis.JedisPool;
  12 import redis.clients.jedis.JedisPoolConfig; 
  13 import redis.clients.jedis.SortingParams;
  14 import redis.clients.jedis.BinaryClient.LIST_POSITION;
  15 import redis.clients.util.SafeEncoder;
  16 
  17 /**
  18  * @author Mr.hu
  19  * @version crateTime:2013-10-30 下午5:41:30
  20  * Class Explain:JedisUtil  
  21  */
  22 public class JedisUtil { 
  23     
  24      //private Logger log = Logger.getLogger(this.getClass());  
  25      /**缓存生存时间 */
  26      private final int expire = 60000;
  27      /** 操作Key的方法 */
  28      public Keys KEYS;
  29      /** 对存储结构为String类型的操作 */
  30      public Strings STRINGS;
  31      /** 对存储结构为List类型的操作 */
  32      public Lists LISTS;
  33       /** 对存储结构为Set类型的操作 */
  34      public Sets SETS;
  35      /** 对存储结构为HashMap类型的操作 */
  36      public Hash HASH;
  37      /** 对存储结构为Set(排序的)类型的操作 */
  38      public SortSet SORTSET;
  39      private static JedisPool jedisPool = null;  
  40          
  41      private JedisUtil() {   
  42         
  43      } 
  44      static {  
  45             JedisPoolConfig config = new JedisPoolConfig();  
  46             //控制一个pool可分配多少个jedis实例,通过pool.getResource()来获取;  
  47             //如果赋值为-1,则表示不限制;如果pool已经分配了maxActive个jedis实例,则此时pool的状态为exhausted(耗尽)。  
  48             config.setMaxTotal(500);  
  49             //控制一个pool最多有多少个状态为idle(空闲的)的jedis实例。  
  50             config.setMaxIdle(5);  
  51             //表示当borrow(引入)一个jedis实例时,最大的等待时间,如果超过等待时间,则直接抛出JedisConnectionException;  
  52             config.setMaxWaitMillis(1000 * 100);  
  53             //在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的;  
  54             config.setTestOnBorrow(true);  
  55             
  56             //redis如果设置了密码:
  57             /*jedisPool = new JedisPool(config, JRedisPoolConfig.REDIS_IP, 
  58                     JRedisPoolConfig.REDIS_PORT,
  59                     10000,JRedisPoolConfig.REDIS_PASSWORD);    */
  60             
  61             //redis未设置了密码:
  62            jedisPool = new JedisPool(config, "172.30.37.73",6379); 
  63        }
  64      
  65      public JedisPool getPool() {  
  66          return jedisPool; 
  67      }
  68      
  69      /**
  70       * 从jedis连接池中获取获取jedis对象  
  71       * @return
  72       */
  73      public Jedis getJedis() {  
  74          return jedisPool.getResource(); 
  75      }
  76      
  77      
  78      private static final JedisUtil jedisUtil = new JedisUtil();
  79      
  80  
  81     /**
  82      * 获取JedisUtil实例
  83      * @return
  84      */
  85     public static JedisUtil getInstance() {
  86         return jedisUtil; 
  87     }
  88 
  89     /**
  90      * 回收jedis(放到finally中)
  91      * @param jedis
  92      */
  93     public void returnJedis(Jedis jedis) {
  94         if (null != jedis && null != jedisPool) {
  95             jedisPool.returnResource(jedis);
  96         }
  97     } 
  98     
  99     /**
 100      * 销毁连接(放到catch中)
 101      * @param pool
 102      * @param jedis
 103      */
 104     public static void returnBrokenResource(Jedis jedis) {
 105         if (null != jedis && null != jedisPool) {
 106             jedisPool.returnResource(jedis);
 107         }
 108     }
 109 
 110     
 111     /**
 112      * 设置过期时间
 113      * @author ruan 2013-4-11
 114      * @param key
 115      * @param seconds
 116      */
 117     public void expire(String key, int seconds) {
 118         if (seconds <= 0) { 
 119             return;
 120         }
 121         Jedis jedis = getJedis();
 122         jedis.expire(key, seconds);
 123         returnJedis(jedis);
 124     }
 125 
 126     /**
 127      * 设置默认过期时间
 128      * @author

关闭

站长推荐上一条 /6 下一条

QQ|手机版|小黑屋|梦想之都-俊月星空 ( 粤ICP备18056059号 )|网站地图

GMT+8, 2025-7-1 18:24 , Processed in 0.039114 second(s), 18 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2025 Discuz! Team.