`

Jedis close问题

 
阅读更多

 Jedis close问题

 

详情请参考:   https://github.com/xetorthio/jedis/wiki/Getting-started

 

使用jedis连接池时要注意进行 jedis.close(),否则会造成连接使用完毕后不能归还给连接池。

 

 

一种方式是 使用   try-with-resources statement  方式

           (       try-with-resources statement  请参考:https://www.cnblogs.com/memory4young/p/example-of-try-with-resources-statement.html )

try() 中的资源会自动被关闭。

 

/// Jedis implements Closeable. Hence, the jedis instance will be auto-closed after the last statement.
try (Jedis jedis = pool.getResource()) {
  /// ... do stuff here ... for example
  jedis.set("foo", "bar");
  String foobar = jedis.get("foo");
  jedis.zadd("sose", 0, "car"); jedis.zadd("sose", 0, "bike"); 
  Set<String> sose = jedis.zrange("sose", 0, -1);
}
/// ... when closing your application:
pool.close();

 

 

 

 

另一种方式  手工 close:

如果你不能使用   try-with-resource, 你可以手工进行 Jedis.close().

Jedis jedis = null;
try {
  jedis = pool.getResource();
  /// ... do stuff here ... for example
  jedis.set("foo", "bar");
  String foobar = jedis.get("foo");
  jedis.zadd("sose", 0, "car"); jedis.zadd("sose", 0, "bike"); 
  Set<String> sose = jedis.zrange("sose", 0, -1);
} finally {

// You have to close jedis object. If you don't close then
// it doesn't release back to pool and you can't get a new
// resource from pool.

  if (jedis != null) {
    jedis.close();
  }
}
/// ... when closing your application:
pool.close();
分享到:
评论

相关推荐

    Jedis所需jar包

    Redis是一款高性能的键值对数据库,常用于缓存、消息队列等场景。...记得根据实际需求选择合适的Jedis版本,以兼容你的Redis服务器和避免已知问题。同时,注意及时更新Jedis,以便获取最新的功能和修复的bug。

    jedis-2.9.0.jar

    jedis.close(); } static void hashBytesSave(Jedis jedis) { byte[] key = "Tables".getBytes(); byte[] field = "9".getBytes(); byte[] value = new byte[10240]; for (int i=0; i; i++) { ...

    jedis-2.0.0

    `建立连接,操作完毕后,记得调用`jedis.close();`关闭连接。 4. **命令执行**:通过`jedis.get(key)`、`jedis.set(key, value)`等方法执行Redis命令。 5. **连接池管理**:使用`JedisPoolConfig`配置连接池参数,...

    jedis依赖jar包

    `建立连接,完成后使用`jedis.close();`关闭连接。 2. **字符串操作**:`set(key, value)`设置键值对,`get(key)`获取键对应的值。 3. **哈希操作**:`hset(hashKey, field, value)`设置哈希表字段值,`hget(hashKey...

    jedis源码 (学习jedis)

    连接Redis服务器通常使用`connect()`方法,而关闭连接则调用`close()`。源码中会展示如何处理网络异常和资源回收。 3. **命令执行机制**: 查阅源码,你会发现在`Jedis`类中,每个Redis命令对应一个方法。这些...

    jedis-3.3.0.jar文件

    jedisPool.close(); } ``` 总结来说,"jedis-3.3.0.jar"和"commons-pool2-2.9.0.jar"的结合使用,为Java开发者提供了高效、稳定的Redis连接和资源管理方案,通过Jedis的API可以便捷地操作Redis,而Apache Commons ...

    java连接redis/jedis连接池/jedis相关工具/jedis对象存取

    jedisPool.close(); } } ``` 接下来,我们关注Jedis对字符串(String)和哈希(Hash)的操作。字符串是最基本的数据类型,可以用来存储单个值。例如,上面的代码展示了如何设置一个键值对。要获取这个值,可以...

    jedis-2.9.0.jar和commons-pool2-2.6.0.jar下载(jedis连接redis数据库)

    resource.close(); ``` 5. **事务处理**: Jedis支持Redis的事务操作,可以批量发送命令并在所有命令都成功时一起执行,或者在任何命令失败时全部回滚。 6. **关闭连接**: 当不再需要连接时,记得关闭Jedis实例...

    jedis.jar下载

    jedis.close(); // 单个连接 jedisPool.returnResource(jedis); // 使用连接池 ``` 2. **异常处理**:在实际应用中,需要捕获并处理可能抛出的异常,如`JedisConnectionException`等。 3. **版本更新**:确保...

    jedis-3.0.0.7z

    4. **关闭连接**:操作完成后,别忘了调用`jedis.close();`关闭连接。 5. **事务处理**:Jedis支持事务,可以批量执行命令,如`jedis.multi()`、`jedis.exec()`等。 6. **其他操作**:Jedis还提供了对字符串、哈希表...

    jedis-2.4.2版本

    5. **关闭连接**:完成操作后,记得调用`close()`方法关闭Jedis实例,释放资源。 ### 四、Jedis与Redis的最佳实践 1. **连接池使用**:为了提高性能和资源利用率,推荐使用连接池来管理Jedis实例。 2. **合理配置...

    jedis开发使用包

    jedis.close(); ``` 6. **使用连接池**:为了优化性能,通常会使用`commons-pool-1.6.jar`来创建一个Jedis连接池。首先,你需要配置连接池的参数,然后创建并初始化`JedisPool`对象。例如: ```java ...

    jedis 和 common-pool

    jedis.close(); ``` **Apache Commons Pool** Apache Commons Pool是Apache软件基金会的一个项目,它提供了一个通用的对象池API,可以用于各种资源的复用,包括数据库连接、网络连接等。在与Jedis结合使用时,...

    jedis-2.9.0+commons-pool2-2.4.2redis依赖包

    Jedis 2.9.0版本是经过社区多轮迭代和测试的一个稳定版本,修复了若干已知问题,提高了兼容性和性能。 Apache Commons Pool 2是一个通用的对象池服务,它是Apache Commons组件的一部分。在Jedis中,它被用来实现...

    Jedis-Sample

    jedis.close(); // 这会自动调用returnResource() } ``` Jedis API支持各种Redis命令,包括基本的字符串操作(如`set`、`get`)、哈希表操作(如`hset`、`hgetall`)、集合操作(如`sadd`、`smembers`)、有序集合...

    jedis-2.7.2.jar

    最后,我们调用`close`方法关闭Jedis实例。 总的来说,Jedis-2.7.2.jar是Java开发人员与Redis集成的重要工具,特别是在Tomcat 8这样的Web服务器环境中。通过使用这个库,开发者可以充分利用Redis的强大功能,如快速...

    jedis2.7版本

    jedis.close(); ``` **5. 其他高级特性** 除了上述基本功能,Jedis 还提供了如管道(Pipelining)、脚本执行(Lua Scripting)、主从复制、集群支持等功能。例如,管道可以一次性发送多个命令,减少网络延迟;通过...

    Jedis简明教程

    jedis.close(); // 归还连接 ``` **二、Jedis数据类型操作** Jedis支持Redis中的五大数据类型:字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set)。以下是一些常用操作示例: ...

Global site tag (gtag.js) - Google Analytics