jedis工具类—优化

jedis工具类的使用很简单。但是考虑到一些性能的问题做出一些调整。


public Jedis getJedis() {
    Jedis jedis = null;
    try {
        jedis = jedisPool.getResource();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return jedis;
}
//随便在放个使用的方法。
public Object get(String key){
    Jedis jedis=null;
    Object o=null;
    try{
        jedis=getJedis();
        if(null != jedis)
            o=SerializeUtil.unserialize(jedis.get(key));
    }catch(Exception e){
    }finally{
        returnResource(jedis);
    }
}
//这样的话,假设一个service调用了3次redis,那么就会去获取jedis,还jedis。
//这样就会导致非常的消耗资源
//也做了许多相同的事情。因此考虑换个方式。采用ThreadLocal来作为jedis的保存。
//再加上在service层采用aop的方式,获取jedis,再关闭jedis连接。
public static ThreadLocal<Jedis> jedisTL=new ThreadLocal<>();
 
public Jedis getJedis(){
    Jedis jedis=null;
    try{
        jedis=jedisTL.get();
        if(null == jedis){
            jedis=jedisPool.getResource();
            jedisTL.set(jedis);
        }
    }catch(Exception e){
    }
}
private void returnResource(Jedis jedis){
    try{
        if(null != jedis)
            jedisPool.returnResource(jedis);
    }catch(Exception e){}
}
 
通过AOP去threadLocal去获取,没有的话,就不去池里面取了。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值