From 97d01c4e4588cb1ee38a633a9a26c539ff101462 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期三, 19 七月 2023 10:59:09 +0800
Subject: [PATCH] Merge branch 'master' of http://git.homecommunity.cn/supervip/MicroCommunity

---
 java110-core/src/main/java/com/java110/core/cache/JedisClientTemplate.java |   58 ++++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 48 insertions(+), 10 deletions(-)

diff --git a/java110-core/src/main/java/com/java110/core/cache/JedisClientTemplate.java b/java110-core/src/main/java/com/java110/core/cache/JedisClientTemplate.java
index d9c7be9..0c10c94 100644
--- a/java110-core/src/main/java/com/java110/core/cache/JedisClientTemplate.java
+++ b/java110-core/src/main/java/com/java110/core/cache/JedisClientTemplate.java
@@ -8,6 +8,7 @@
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.data.redis.core.script.DefaultRedisScript;
 import org.springframework.stereotype.Component;
+import redis.clients.jedis.JedisCluster;
 import redis.clients.jedis.JedisPool;
 
 import java.util.List;
@@ -31,7 +32,7 @@
 
     @Override
     public String set(byte[] key, byte[] value) {
-        redisTemplate.opsForValue().set(key, value);
+        redisTemplate.opsForValue().set(new String(key), value);
         return "";
     }
 
@@ -39,23 +40,46 @@
     public String set(String key, String value, String nxxx, String expx, int time) {
 //        redisTemplate.opsForValue().set(key, value,nxxx,expx,time);
 //        return "";
-        return redisTemplate.execute(new RedisCallback() {
+        Object ext = redisTemplate.execute(new RedisCallback() {
             public String doInRedis(RedisConnection connection) {
-                Jedis jedis = (Jedis) connection.getNativeConnection();
-                return jedis.set(key, value, nxxx, expx, time);
+                //redis.clients.jedis.Jedis jedis = (redis.clients.jedis.Jedis) connection.getNativeConnection();
+                Object nativeConnection = connection.getNativeConnection();
+                // 闆嗙兢
+                if (nativeConnection instanceof JedisCluster) {
+                    return ((JedisCluster) nativeConnection).set(key, value, nxxx, expx, time);
+                }
+
+                // 鍗曟満
+                if (nativeConnection instanceof redis.clients.jedis.Jedis) {
+                    return ((redis.clients.jedis.Jedis) nativeConnection).set(key, value, nxxx, expx, time);
+                }
+                return "";
             }
-        }, true).toString();
+        }, true);
+        if (ext == null) {
+            return "";
+        }
+        return ext.toString();
     }
 
 
     @Override
     public String get(String key) {
-        return redisTemplate.opsForValue().get(key).toString();
+        Object value = redisTemplate.opsForValue().get(key);
+        if (value == null) {
+            return null;
+        }
+
+        return value.toString();
     }
 
     @Override
     public byte[] get(byte[] key) {
-        return (byte[]) redisTemplate.opsForValue().get(key);
+        Object value = redisTemplate.opsForValue().get(new String(key));
+        if (value == null) {
+            return null;
+        }
+        return (byte[]) value;
     }
 
     @Override
@@ -109,7 +133,7 @@
 
     @Override
     public Long del(byte[] key) {
-        redisTemplate.delete(key);
+        redisTemplate.delete(new String(key));
         return 1L;
     }
 
@@ -131,7 +155,21 @@
 
     @Override
     public Object eval(String script, List<String> keys, List<String> args) {
-        DefaultRedisScript redisScript = new DefaultRedisScript(script);
-        return redisTemplate.execute(redisScript, keys, args);
+        Object exeRet = redisTemplate.execute((RedisCallback<Object>) connection -> {
+            Object nativeConnection = connection.getNativeConnection();
+            // 闆嗙兢
+            if (nativeConnection instanceof JedisCluster) {
+                return ((JedisCluster) nativeConnection).eval(script, keys, args);
+            }
+
+            // 鍗曟満
+            if (nativeConnection instanceof redis.clients.jedis.Jedis) {
+                return ((redis.clients.jedis.Jedis) nativeConnection).eval(script, keys, args);
+            }
+
+            return null;
+        });
+        //return redisTemplate.execute(redisScript, keys, args);
+        return exeRet;
     }
 }

--
Gitblit v1.8.0