zoukankan      html  css  js  c++  java
  • Jedis 使用范例

    public class RedisUtil {

    Logger logger = LoggerFactory.getLogger(RedisUtil.class);
    private JedisPool pool = null;

    /**

    *在构造函数中初始化JedisPool

    **/
    public RedisUtil() {
      JedisPoolConfig config = new JedisPoolConfig();

      // 控制一个pool可分配多少个jedis实例,通过pool.getResource()来获取;    

      //如果赋值为-1,则表示不限制;如果pool已经分配了maxActive个jedis实例,则此时pool的状态为exhausted(耗尽)。

      config.setMaxActive(SystemConstants.REDIS_MAX_ACTIVE);  

      //控制一个pool最多有多少个状态为idle(空闲的)的jedis实例。  

      config.setMaxIdle(SystemConstants.REDIS_MAX_IDLE); 

         //表示当borrow一个jedis实例时,最大的等待时间,如果超过等待时间,则直接抛出     
      config.setMaxWait(SystemConstants.REDIS_MAX_WAIT);   

       //表示当borrow(引入)一个jedis实例时,最大的等待时间,如果超过等待时间,则直接抛出JedisConnectionException;  
      config.setTestOnBorrow(true);
      config.setTestOnReturn(true);
      pool = new JedisPool(config, SystemConstants.REDIS_IP,SystemConstants.REDIS_PORT,SystemConstants.TIMEOUT);  //
    }
    public JedisPool getPool() {
      return pool;
    }
    public void setPool(JedisPool pool) {
      this.pool = pool;
    }

    public Jedis getJedis() {
      Jedis jedis = null;
      int count =0;
      do{
        try{
          jedis = this.getPool().getResource();
        } catch (Exception e) {
          getPool().returnBrokenResource(jedis);
          logger.error("Redis Exception :"+e.toString());
          e.printStackTrace();
        }
        count++;
      }while(jedis==null&&count<SystemConstants.REDIS_RETRY_NUM);
      return jedis;
    }

    /**

    *关闭一个Jedis 资源 return 给pool

    */
    public void closeJedis(Jedis jedis) {
      if(jedis != null) {
        this.pool.returnResource(jedis);
      }
    }

    }

    // 以下为使用方法

    // 获取Jedis 对象

    Jedis jedis = redisUtil.getJedis();

    rsp.setTariff_version(jedis.get("tariff_version"));

    jedis.rpush(key.getBytes(),data);

    // 关闭jedis 对象
    redisUtil.closeJedis(jedis);

  • 相关阅读:
    数组对象去重
    数组对象中key值为数组的数据处理成多个对应的数组对象
    数组对象相同的key值合并,并且把对应的id放到一个数组
    vue使用element-ui tabs切换 实现按需加载
    vue使用element-ui tabs切换echarts 解决宽度100% 问题
    递归获取所有JSON对象
    JS通过内核判断各种浏览器区分360与谷歌
    vue 跳转当前页面不刷新问题
    docker 常用命令
    java 比较时间的几种方法
  • 原文地址:https://www.cnblogs.com/oftenlin/p/4921203.html
Copyright © 2011-2022 走看看