Redis在JAVA中的运用(工具类)

最近项目需要用redis在中间做缓存所以写了一个工具类作为练习用

redis版本:redis_version:3.0.504

用到阿里的解析JSON的库:fastjson

import org.apache.log4j.Logger;
import org.apache.log4j.chainsaw.Main;
import com.alibaba.fastjson.JSONObject;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

/**
 * @Description:redis工具类
 * @ClassName:
 * @date 2016年10月31日 上午11:25:06
 */
@SuppressWarnings("unused")
public class RedisUtils
{
    private static final String IP = "127.0.0.1"; // ip
    private static final int PORT = 6379;         // 端口
    private static final String AUTH="";          // 密码(原始默认是没有密码)
    private static int   MAX_ACTIVE = 1024;       // 最大连接数
    private static int   MAX_IDLE = 200;          // 设置最大空闲数
    private static int   MAX_WAIT = 10000;        // 最大连接时间
    private static int   TIMEOUT = 10000;         // 超时时间
    private static boolean BORROW = true;         // 在borrow一个事例时是否提前进行validate操作
    private static JedisPool pool = null;
    private static Logger logger = Logger.getLogger(RedisUtils.class);
    /**
     * 初始化线程池
     */
    static
    {
        JedisPoolConfig config = new JedisPoolConfig();
        config.setMaxTotal(MAX_ACTIVE);
        config.setMaxIdle(MAX_IDLE);
        config.setMaxWaitMillis(MAX_WAIT);
        config.setTestOnBorrow(BORROW);
        pool = new JedisPool(config, IP, PORT, TIMEOUT);
    }
    
    
    /**
     * 获取连接
     */
    public static synchronized  Jedis getJedis()
    {
        try
        {
            if(pool != null)
            {
                return pool.getResource();
            }
            else
            {
                return null;
            }
        }
        catch (Exception e) {
            logger.info("连接池连接异常");
            return null;
        }
       
    }
    /**
     * @Description:设置失效时间
     * @param @param key
     * @param @param seconds
     * @param @return  
     * @return boolean 返回类型
     */
    public static void disableTime(String key,int seconds)
    {
        Jedis jedis = null;
        try
        {
            jedis = getJedis();
            jedis.expire(key, seconds);
            
        }
        catch (Exception e) {
            logger.debug("设置失效失败.");
        }finally {
            getColse(jedis);
        }
    }
    
    
    /**
     * @Description:插入对象
     * @param @param key
     * @param @param obj
     * @param @return  
     * @return boolean 返回类型
     */
    public static boolean addObject(String key,Object obj)
    {
        
        Jedis jedis = null;
        String value = JSONObject.toJSONString(obj);
        try
        {
            jedis = getJedis();
            String code = jedis.set(key, value);
            if(code.equals("ok"))
            {
                return true;
            }
        }
        catch (Exception e) {
            logger.debug("插入数据有异常.");
            return false;
        }finally {
            getColse(jedis);
        }
        return false;
    }
    
    
    
    /**
     * @Description:存储key~value
     * @param @param key
     * @param @param value  
     * @return void 返回类型
     */
    
    public static boolean addValue(String key,String value)
    {
        Jedis jedis = null;
        try
        {
            jedis = getJedis();
            String code = jedis.set(key, value);
            if(code.equals("ok"))
            {
                return true;
            }
        }
        catch (Exception e) {
            logger.debug("插入数据有异常.");
            return false;
        }finally {
            getColse(jedis);
        }
        return false;
    }
    /**
     * @Description:删除key
     * @param @param key
     * @param @return  
     * @return boolean 返回类型
     */
    public static boolean delKey(String key)
    {
        Jedis jedis = null;
        try
        {
            jedis = getJedis();
            Long code = jedis.del(key);
            if(code > 1)
            {
                return true;
            }
        }
        catch (Exception e) {
            logger.debug("删除key异常.");
            return false;
        }finally {
            getColse(jedis);
        }
        return false;
    }
    
    /**
     * @Description: 关闭连接
     * @param @param jedis  
     * @return void 返回类型
     */
    
    public static void getColse(Jedis jedis)
    {
        if(jedis != null)
        {
            jedis.close();
        }
    }
    
}

  

 

posted @ 2016-10-31 15:05  字节  阅读(8107)  评论(2编辑  收藏  举报