From 45c39c4deba8f37d6152793efc3b271c352fac89 Mon Sep 17 00:00:00 2001
From: Your Name <you@example.com>
Date: 星期五, 25 八月 2023 23:16:52 +0800
Subject: [PATCH] 优化diamante
---
java110-core/src/main/java/com/java110/core/cache/JedisClientTemplate.java | 47 ++++++++++++++++++++++++++++++++++++++---------
1 files changed, 38 insertions(+), 9 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 1ccc67a..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,12 +40,26 @@
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();
}
@@ -60,7 +75,7 @@
@Override
public byte[] get(byte[] key) {
- Object value = redisTemplate.opsForValue().get(key);
+ Object value = redisTemplate.opsForValue().get(new String(key));
if (value == null) {
return null;
}
@@ -118,7 +133,7 @@
@Override
public Long del(byte[] key) {
- redisTemplate.delete(key);
+ redisTemplate.delete(new String(key));
return 1L;
}
@@ -140,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