This is an automated email from the ASF dual-hosted git repository.
songxiaosheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/dubbo-spi-extensions.git
The following commit(s) were added to refs/heads/master by this push:
new cbad15d fix: redis connection do not close and return to connection
pool (#311)
cbad15d is described below
commit cbad15d8767e72c539cae0f3abeb8885338948a6
Author: aofall <[email protected]>
AuthorDate: Mon Apr 15 20:48:13 2024 +0800
fix: redis connection do not close and return to connection pool (#311)
---
.../dubbo/remoting/redis/jedis/ClusterRedisClient.java | 5 ++++-
.../apache/dubbo/remoting/redis/jedis/MonoRedisClient.java | 10 +++++-----
.../dubbo/remoting/redis/jedis/SentinelRedisClient.java | 14 +++++++-------
3 files changed, 16 insertions(+), 13 deletions(-)
diff --git
a/dubbo-remoting-extensions/dubbo-remoting-redis/src/main/java/org/apache/dubbo/remoting/redis/jedis/ClusterRedisClient.java
b/dubbo-remoting-extensions/dubbo-remoting-redis/src/main/java/org/apache/dubbo/remoting/redis/jedis/ClusterRedisClient.java
index fb5f4ff..87c48ee 100644
---
a/dubbo-remoting-extensions/dubbo-remoting-redis/src/main/java/org/apache/dubbo/remoting/redis/jedis/ClusterRedisClient.java
+++
b/dubbo-remoting-extensions/dubbo-remoting-redis/src/main/java/org/apache/dubbo/remoting/redis/jedis/ClusterRedisClient.java
@@ -75,7 +75,10 @@ public class ClusterRedisClient extends AbstractRedisClient
implements RedisClie
for (JedisPool jedisPool : poolMap.values()) {
Jedis jedis = jedisPool.getResource();
if (jedis.isConnected()) {
+ jedisPool.returnResource(jedis);
return true;
+ } else {
+ jedisPool.returnResource(jedis);
}
}
return false;
@@ -98,7 +101,7 @@ public class ClusterRedisClient extends AbstractRedisClient
implements RedisClie
for (JedisPool jedisPool : nodes.values()) {
Jedis jedis = jedisPool.getResource();
result.addAll(scan(jedis, pattern));
- jedis.close();
+ jedisPool.returnResource(jedis);
}
return result;
}
diff --git
a/dubbo-remoting-extensions/dubbo-remoting-redis/src/main/java/org/apache/dubbo/remoting/redis/jedis/MonoRedisClient.java
b/dubbo-remoting-extensions/dubbo-remoting-redis/src/main/java/org/apache/dubbo/remoting/redis/jedis/MonoRedisClient.java
index 07cb9ed..64e4ebb 100644
---
a/dubbo-remoting-extensions/dubbo-remoting-redis/src/main/java/org/apache/dubbo/remoting/redis/jedis/MonoRedisClient.java
+++
b/dubbo-remoting-extensions/dubbo-remoting-redis/src/main/java/org/apache/dubbo/remoting/redis/jedis/MonoRedisClient.java
@@ -55,7 +55,7 @@ public class MonoRedisClient extends AbstractRedisClient
implements RedisClient
public Long publish(String channel, String message) {
Jedis jedis = jedisPool.getResource();
Long result = jedis.publish(channel, message);
- jedis.close();
+ jedisPool.returnResource(jedis);
return result;
}
@@ -63,7 +63,7 @@ public class MonoRedisClient extends AbstractRedisClient
implements RedisClient
public boolean isConnected() {
Jedis jedis = jedisPool.getResource();
boolean connected = jedis.isConnected();
- jedis.close();
+ jedisPool.returnResource(jedis);
return connected;
}
@@ -76,7 +76,7 @@ public class MonoRedisClient extends AbstractRedisClient
implements RedisClient
public Long hdel(String key, String... fields) {
Jedis jedis = jedisPool.getResource();
Long result = jedis.hdel(key, fields);
- jedis.close();
+ jedisPool.returnResource(jedis);
return result;
}
@@ -84,7 +84,7 @@ public class MonoRedisClient extends AbstractRedisClient
implements RedisClient
public Set<String> scan(String pattern) {
Jedis jedis = jedisPool.getResource();
Set<String> result = super.scan(jedis, pattern);
- jedis.close();
+ jedisPool.returnResource(jedis);
return result;
}
@@ -92,7 +92,7 @@ public class MonoRedisClient extends AbstractRedisClient
implements RedisClient
public Map<String, String> hgetAll(String key) {
Jedis jedis = jedisPool.getResource();
Map<String, String> result = jedis.hgetAll(key);
- jedis.close();
+ jedisPool.returnResource(jedis);
return result;
}
diff --git
a/dubbo-remoting-extensions/dubbo-remoting-redis/src/main/java/org/apache/dubbo/remoting/redis/jedis/SentinelRedisClient.java
b/dubbo-remoting-extensions/dubbo-remoting-redis/src/main/java/org/apache/dubbo/remoting/redis/jedis/SentinelRedisClient.java
index 137a379..3fb4afa 100644
---
a/dubbo-remoting-extensions/dubbo-remoting-redis/src/main/java/org/apache/dubbo/remoting/redis/jedis/SentinelRedisClient.java
+++
b/dubbo-remoting-extensions/dubbo-remoting-redis/src/main/java/org/apache/dubbo/remoting/redis/jedis/SentinelRedisClient.java
@@ -58,7 +58,7 @@ public class SentinelRedisClient extends AbstractRedisClient
implements RedisCli
public Long hset(String key, String field, String value) {
Jedis jedis = sentinelPool.getResource();
Long result = jedis.hset(key, field, value);
- jedis.close();
+ sentinelPool.returnResource(jedis);
return result;
}
@@ -66,7 +66,7 @@ public class SentinelRedisClient extends AbstractRedisClient
implements RedisCli
public Long publish(String channel, String message) {
Jedis jedis = sentinelPool.getResource();
Long result = jedis.publish(channel, message);
- jedis.close();
+ sentinelPool.returnResource(jedis);
return result;
}
@@ -74,7 +74,7 @@ public class SentinelRedisClient extends AbstractRedisClient
implements RedisCli
public boolean isConnected() {
Jedis jedis = sentinelPool.getResource();
boolean result = jedis.isConnected();
- jedis.close();
+ sentinelPool.returnResource(jedis);
return result;
}
@@ -87,7 +87,7 @@ public class SentinelRedisClient extends AbstractRedisClient
implements RedisCli
public Long hdel(String key, String... fields) {
Jedis jedis = sentinelPool.getResource();
Long result = jedis.hdel(key, fields);
- jedis.close();
+ sentinelPool.returnResource(jedis);
return result;
}
@@ -95,7 +95,7 @@ public class SentinelRedisClient extends AbstractRedisClient
implements RedisCli
public Set<String> scan(String pattern) {
Jedis jedis = sentinelPool.getResource();
Set<String> result = scan(jedis, pattern);
- jedis.close();
+ sentinelPool.returnResource(jedis);
return result;
}
@@ -103,7 +103,7 @@ public class SentinelRedisClient extends
AbstractRedisClient implements RedisCli
public Map<String, String> hgetAll(String key) {
Jedis jedis = sentinelPool.getResource();
Map<String, String> result = jedis.hgetAll(key);
- jedis.close();
+ sentinelPool.returnResource(jedis);
return result;
}
@@ -111,7 +111,7 @@ public class SentinelRedisClient extends
AbstractRedisClient implements RedisCli
public void psubscribe(JedisPubSub jedisPubSub, String... patterns) {
Jedis jedis = sentinelPool.getResource();
jedis.psubscribe(jedisPubSub, patterns);
- jedis.close();
+ sentinelPool.returnResource(jedis);
}
@Override