使用jedis2.8.0连接redis

下载了最新的jedis客户端jedis2.8.0,在网上找了找jedis使用连接池的工具类,拿来发现都是低版本的jedis写法:

returnResource();

returnBrokenResource();

这俩方法过期了~,查不到最新版本的写法,装逼未遂~~

于是去看了看源码,发现源码的注释写的很清楚:

/**
   * @deprecated starting from Jedis 3.0 this method will not be exposed.
   * Resource cleanup should be done using @see {@link redis.clients.jedis.Jedis#close()}
   */
  @Override
  @Deprecated
  public void returnResource(final Jedis resource) {
    if (resource != null) {
      try {
        resource.resetState();
        returnResourceObject(resource);
      } catch (Exception e) {
        returnBrokenResource(resource);
        throw new JedisException("Could not return the resource to the pool", e);
      }
    }
  }

用close()方法就可以了,跟踪看看close()方法:

@Override
  public void close() {
    if (dataSource != null) {
      if (client.isBroken()) {
        this.dataSource.returnBrokenResource(this);
      } else {
        this.dataSource.returnResource(this);
      }
    } else {
      client.close();
    }
  }

dataSource 为定义的连接池 ,如果连接池不为空,做一些归还连接的操作,jedis的连接池设计都是基于org.apache.commons.pool2,这俩方法没跟着看,不过就是将连接的属性值改为了可用之类的。

如果连接池为空的话,直接断开与redis服务的连接啦~

所以在写一些基础类的时候,看起来应该是这样的:

public <T> void set(T item) {
        Jedis jedis =null;
        try {
            jedis = JedisClient.getJedis();
            String v = cacheKeyUtil.getDefaultKey(item);
            jedis.set(v, iserializer.serialize(item));
        } catch (Exception e) {
            logger.warn("set", item, e);
        } finally {      if(null != jsdis){             jedis.close();
        }
        }
    }

借了别人的,一定要还~~~

时间: 2024-08-13 15:46:43

使用jedis2.8.0连接redis的相关文章

redis连接池 jedis-2.9.0.jar+commons-pool2-2.4.2.jar

java使用Redis连接池  jar包为 jedis-2.9.0.jar+commons-pool2-2.4.2.jar 1 package com.test; 2 3 import redis.clients.jedis.Jedis; 4 import redis.clients.jedis.JedisPool; 5 import redis.clients.jedis.JedisPoolConfig; 6 7 public class RedisUtil { 8 //Redis服务器IP

对redis客户端jedis2.8.0的进一步封装

jedis2.8.0的进一步封装: 1.序列化存储对象 2.结合spring,创建redis连接池 3.提供了基础的单个实体操作,有序list操作和一对多关系list的操作,对list提供了分页的封装 4.封装了简单的逻辑(如:重建缓存的场景,排序规则,具体方法需要重写~) 具体使用的时候,只需要继承符合你的业务的类(ICacheT,ICachtList,ICacheRelated),并重写下排序,重建时需要的具体数据等方法就可以啦 (1).单个缓存(ICacheT) public class

java 连接Redis及demo

java连接linux Redis遇到的问题 昨天在Linux搭建了Redis服务,今天使用java连接测试了一下.要想使用java连接redis服务,就离不开jedis-2.6.1.jar.使用jedis连接redis十分方便.下面我们测试一下是否连接上redis服务: package com.coinvs.redis.util;import redis.clients.jedis.Jedis;//import redis.clients.jedis.Jedis;public class Ra

java连接redis

类似于java连接mysql需要包 java连接redis同样也需要包 jedis-2.1.0.jar是java用来连接redis的包 1.将包引入即可 2. public void redisTest(){ Jedis jedis=new Jedis("127.0.0.1", 6379); jedis.set("greeting", "hello world"); String greeting = jedis.get("greeti

java连接redis问题

package com.guo.redis; import redis.clients.jedis.Jedis; public class Redis_1 { public static void main(String[] args) { // TODO Auto-generated method stub //连接到远程的redis服务 Jedis jedis = new Jedis("192.168.80.1",6379); //权限 验证 // jedis.auth("

Redis系列-远程连接redis并给redis加锁

假设两台redis服务器,ip分别为:192.168.1.101和192.168.1.103,如何在101上通过redis-cli访问103上的redis呢?在远程连接103之前,先讲下redis-cli的几个关键参数: 用法:redis-cli [OPTIONS] [cmd [arg [arg ...]]] -h <主机ip>,默认是127.0.0.1 -p <端口>,默认是6379 -a <密码>,如果redis加锁,需要传递密码 --help,显示帮助信息 通过对

使用可视化工具redisclient连接redis

可视化工具推荐:http://database.51cto.com/art/201505/477692.htm 1.连接redis服务端 设置连接密码:在redis根目录下,双击redis-cli.exe, 输入命令:redis-cli.exe -h 127.0.0.1 -p 6379 -n 1    1就是密码 使用redisClient连接redis

php 连接redis 数据库单利类

<?php class RedisConnect { /** * Redis的ip * * @var string */ const REDISHOSTNAME = "127.0.0.1"; /** * Redis的port * * @var int */ const REDISPORT = 6379; /** * Redis的超时时间 * * @var int */ const REDISTIMEOUT = 0; /** * Redis的password * * @var un

Java连接redis的使用演示样例

Redis是开源的key-value存储工具,redis通经常使用来存储结构化的数据,由于redis的key能够包括String.hash.listset和sorted list. Redisserver眼下最稳定的版本号是2.8.9,能够到官网http://redis.io/download下载.依据机器的类型及位数下载相应的版本号安装就可以,reids支持linux和windows操作系统. Redisclient支持多种语言,包含:c.C++.C#.php.java.python.go等语