• 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();
            }
        }
        
    }
    

      

  • 相关阅读:
    C语言 · 猜算式
    C语言 · 2n皇后问题
    数据结构 · 二叉树遍历
    C语言 · 滑动解锁
    出现Exception in thread "main" java.lang.UnsupportedClassVersionError: org/broadinstitute/gatk/engine/CommandLineGATK : Unsupported major.minor version 52.0问题解决方案
    linux提取指定列字符并打印所有内容(awk)
    mapping生成sam文件时出现[mem_sam_pe] paired reads have different names错误
    出现“java.lang.AssertionError: SAM dictionaries are not the same”报错
    Linux运行Java出现“Exception in thread "main" java.lang.OutOfMemoryError: Java heap space”报错
    Linux:echo中,>和>>的区别(保存结果和追加结果)
  • 原文地址:https://www.cnblogs.com/byteworld/p/6015923.html
Copyright © 2020-2023  润新知