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

Reply via email to