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

  • 相关阅读:
    Dubbo(八):timeout超时机制解析
    Visual Studio 2022 开发Python,新建py文件编码是gb2312,怎么样才能变为utf8
    Python 使用ORM框架 SQLAlchemy
    python log.py
    网络传输文件 极连快传 (360.cn)
    python sqlite_helper.py
    Newtonsoft.Json null值不序列化
    python爬虫开发与项目实战 范传辉 2017
    python 常见错误解决方法
    黑白照片转彩色
  • 原文地址:https://www.cnblogs.com/oftenlin/p/4921203.html
Copyright © 2020-2023  润新知