From 1194038279d8a378f2ce7cbea59a32d753becbf8 Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期一, 30 三月 2026 08:16:47 +0800
Subject: [PATCH] feat: update rsf-design and redis integration

---
 rsf-server/src/main/java/com/vincent/rsf/server/common/service/RedisService.java |  252 ++++++++++++++------------------------------------
 1 files changed, 71 insertions(+), 181 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/common/service/RedisService.java b/rsf-server/src/main/java/com/vincent/rsf/server/common/service/RedisService.java
index d6c0af5..4a2b8c7 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/common/service/RedisService.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/common/service/RedisService.java
@@ -11,6 +11,8 @@
 
 import java.util.Date;
 import java.util.Set;
+import java.util.function.Consumer;
+import java.util.function.Function;
 
 /**
  * redis tools
@@ -60,6 +62,31 @@
 		return null;
 	}
 
+	private <T> T withJedis(Function<Jedis, T> action) {
+		Jedis jedis = this.getJedis();
+		if (jedis == null) {
+			return null;
+		}
+		try (jedis) {
+			return action.apply(jedis);
+		} catch (Exception e) {
+			log.error(this.getClass().getSimpleName(), e);
+		}
+		return null;
+	}
+
+	private void withJedisVoid(Consumer<Jedis> action) {
+		Jedis jedis = this.getJedis();
+		if (jedis == null) {
+			return;
+		}
+		try (jedis) {
+			action.accept(jedis);
+		} catch (Exception e) {
+			log.error(this.getClass().getSimpleName(), e);
+		}
+	}
+
 	// key - object ----------------------------------------------------------------------------------------------------------
 
 	public String set(String flag, String key, Object value) {
@@ -70,13 +97,7 @@
 			this.delete(flag, key);
 			return null;
 		}
-		Jedis jedis = this.getJedis();
-		try{
-			return jedis.set((flag + LINK + key).getBytes(), Serialize.serialize(value));
-		} catch (Exception e) {
-			log.error(this.getClass().getSimpleName(), e);
-		}
-		return null;
+		return withJedis(jedis -> jedis.set((flag + LINK + key).getBytes(), Serialize.serialize(value)));
 	}
 
 	public String set(String flag, String key, Object value, Integer seconds) {
@@ -87,58 +108,38 @@
 			this.delete(flag, key);
 			return null;
 		}
-		Jedis jedis = this.getJedis();
-		try{
-			return jedis.setex((flag + LINK + key).getBytes(), seconds, Serialize.serialize(value));
-		} catch (Exception e) {
-			log.error(this.getClass().getSimpleName(), e);
-		}
-		return null;
+		return withJedis(jedis -> jedis.setex((flag + LINK + key).getBytes(), seconds, Serialize.serialize(value)));
 	}
 
 	public <T> T get(String flag, String key) {
 		if(!this.initialize) {
 			return null;
 		}
-		Jedis jedis = this.getJedis();
-		try{
+		return withJedis(jedis -> {
 			byte[] bytes = jedis.get((flag + LINK + key).getBytes());
 			if(bytes == null || bytes.length == 0 ) {
 				return null;
 			}
 			return (T) Serialize.unSerialize(bytes);
-		} catch (Exception e) {
-			log.error(this.getClass().getSimpleName(), e);
-		}
-		return null;
+		});
 	}
 
 	public Long delete(String flag, String key) {
 		if(!this.initialize) {
 			return null;
 		}
-		Jedis jedis = this.getJedis();
-		try{
-			return jedis.del((flag + LINK + key).getBytes());
-		} catch (Exception e) {
-			log.error(this.getClass().getSimpleName(), e);
-		}
-		return null;
+		return withJedis(jedis -> jedis.del((flag + LINK + key).getBytes()));
 	}
 
 	public Long clear(String flag) {
 		if(!this.initialize) {
 			return null;
 		}
-		Jedis jedis = this.getJedis();
 		this.setValue(flag, "CLEARING", "true");
-		try{
+		return withJedis(jedis -> {
 			Object returnValue = jedis.eval("local keys = redis.call('keys', ARGV[1]) for i=1,#keys,1000 do redis.call('del', unpack(keys, i, math.min(i+4999, #keys))) end return #keys",0,flag + LINK + "*");
 			return Long.parseLong(String.valueOf(returnValue));
-		} catch (Exception e) {
-			log.error(this.getClass().getSimpleName(), e);
-		}
-		return null;
+		});
 	}
 
 	// 涓哄凡瀛樺湪鐨刱ey璁剧疆杩囨湡鏃堕棿 - 绉�
@@ -146,12 +147,9 @@
 		if(!this.initialize) {
 			return;
 		}
-		Jedis jedis = this.getJedis();
-		try{
+		withJedisVoid(jedis -> {
 			jedis.expire((flag + LINK + key).getBytes(), seconds);
-		} catch (Exception e) {
-			log.error(this.getClass().getSimpleName(), e);
-		}
+		});
 	}
 
 	// 涓哄凡瀛樺湪鐨刱ey璁剧疆杩囨湡鏃堕棿 - 鍏蜂綋鍒版椂闂存埑 锛堢锛�
@@ -159,12 +157,9 @@
 		if(!this.initialize) {
 			return;
 		}
-		Jedis jedis = this.getJedis();
-		try{
+		withJedisVoid(jedis -> {
 			jedis.expireAt((flag + LINK + key).getBytes(), toTime.getTime()/1000);
-		} catch (Exception e) {
-			log.error(this.getClass().getSimpleName(), e);
-		}
+		});
 	}
 
 	// 鑾峰彇杩囨湡鍓╀綑鏃堕棿锛堢锛� ttl == -1 娌℃湁璁剧疆杩囨湡鏃堕棿锛� ttl == -2 key涓嶅瓨鍦�
@@ -172,13 +167,7 @@
 		if(!this.initialize) {
 			return null;
 		}
-		Jedis jedis = this.getJedis();
-		try{
-			return jedis.ttl((flag + LINK + key).getBytes());
-		} catch (Exception e) {
-			log.error(this.getClass().getSimpleName(), e);
-		}
-		return null;
+		return withJedis(jedis -> jedis.ttl((flag + LINK + key).getBytes()));
 	}
 
 
@@ -188,39 +177,21 @@
 		if(!this.initialize) {
 			return null;
 		}
-		Jedis jedis = this.getJedis();
-		try{
-			return jedis.set(flag + LINK + key, value);
-		} catch (Exception e) {
-			log.error(this.getClass().getSimpleName(), e);
-		}
-		return null;
+		return withJedis(jedis -> jedis.set(flag + LINK + key, value));
 	}
 
 	public String setValue(String flag, String key, String value, Integer seconds) {
 		if(!this.initialize) {
 			return null;
 		}
-		Jedis jedis = this.getJedis();
-		try{
-			return jedis.setex(flag + LINK + key, seconds , value);
-		} catch (Exception e) {
-			log.error(this.getClass().getSimpleName(), e);
-		}
-		return null;
+		return withJedis(jedis -> jedis.setex(flag + LINK + key, seconds , value));
 	}
 
 	public String getValue(String flag, String key) {
 		if(!this.initialize) {
 			return null;
 		}
-		Jedis jedis = this.getJedis();
-		try{
-			return jedis.get(flag + LINK + key);
-		} catch (Exception e) {
-			log.error(this.getClass().getSimpleName(), e);
-		}
-		return null;
+		return withJedis(jedis -> jedis.get(flag + LINK + key));
 	}
 
 	public Long deleteValue(String flag, String... key) {
@@ -228,17 +199,13 @@
 			return null;
 		}
 
-		Jedis jedis = this.getJedis();
-		try{
+		return withJedis(jedis -> {
 			String[] keys = new String[key.length];
 			for(int i=0;i<key.length;i++){
 				keys[i] = flag + LINK + key[i];
 			}
 			return jedis.del(keys);
-		} catch (Exception e) {
-			log.error(this.getClass().getSimpleName(), e);
-		}
-		return null;
+		});
 	}
 
 	public Long clearValue(String flag) {
@@ -247,39 +214,28 @@
 		}
 
 		this.setValue(flag, "CLEARING", "true");
-		Jedis jedis = this.getJedis();
-
-		try{
+		return withJedis(jedis -> {
 			Object returnValue = jedis.eval("return redis.call('del', unpack(redis.call('keys', ARGV[1])))",0,flag + LINK + "*");
 			return Long.parseLong(String.valueOf(returnValue));
-		} catch (Exception e) {
-			log.error(this.getClass().getSimpleName(), e);
-		}
-		return null;
+		});
 	}
 
 	public void setValueExpire(String flag, String key,int seconds){
 		if(!this.initialize) {
 			return;
 		}
-		Jedis jedis = this.getJedis();
-		try{
+		withJedisVoid(jedis -> {
 			jedis.expire((flag + LINK + key).getBytes(), seconds);
-		} catch (Exception e) {
-			log.error(this.getClass().getSimpleName(), e);
-		}
+		});
 	}
 
 	public void setValueExpireAt(String flag, String key,Date atTime){
 		if(!this.initialize) {
 			return;
 		}
-		Jedis jedis = this.getJedis();
-		try{
+		withJedisVoid(jedis -> {
 			jedis.expireAt((flag + LINK + key).getBytes(), atTime.getTime()/1000);
-		} catch (Exception e) {
-			log.error(this.getClass().getSimpleName(), e);
-		}
+		});
 	}
 
 
@@ -293,95 +249,63 @@
 			deleteMap(name,key);
 			return null;
 		}
-		Jedis jedis = this.getJedis();
-		try {
-			return jedis.hset(name.getBytes(), key.getBytes(), Serialize.serialize(value));
-		} catch (Exception e) {
-			log.error(this.getClass().getSimpleName(), e);
-		}
-		return null;
+		return withJedis(jedis -> jedis.hset(name.getBytes(), key.getBytes(), Serialize.serialize(value)));
 	}
 
 	public <T> T getMap(String name, String key) {
 		if(!this.initialize) {
 			return null;
 		}
-		Jedis jedis = this.getJedis();
-		try{
+		return withJedis(jedis -> {
 			byte[] bytes = jedis.hget(name.getBytes(), key.getBytes());
 			if (bytes == null || bytes.length == 0) {
 				return null;
 			}
 			return (T) Serialize.unSerialize(bytes);
-		} catch (Exception e) {
-			log.error(this.getClass().getSimpleName(), e);
-		}
-		return null;
+		});
 	}
 
 	public Set<String> getMapKeys(String name) {
 		if(!this.initialize) {
 			return null;
 		}
-		Jedis jedis = this.getJedis();
-		try{
-            return jedis.hkeys(name);
-		} catch (Exception e) {
-			log.error(this.getClass().getSimpleName(), e);
-		}
-		return null;
+		return withJedis(jedis -> jedis.hkeys(name));
 	}
 
 	public Long deleteMap(String name, String... key) {
 		if(!this.initialize) {
 			return null;
 		}
-		Jedis jedis = this.getJedis();
-		try{
+		return withJedis(jedis -> {
 			String[] keys = new String[key.length];
             System.arraycopy(key, 0, keys, 0, key.length);
             return jedis.hdel(name, keys);
-		} catch (Exception e) {
-			log.error(this.getClass().getSimpleName(), e);
-		}
-		return null;
+		});
 	}
 
 	public Long clearMap(String name) {
 		if(!this.initialize) {
 			return null;
 		}
-		Jedis jedis = this.getJedis();
-		try{
-			return jedis.del(name);
-		} catch (Exception e) {
-			log.error(this.getClass().getSimpleName(), e);
-		}
-		return null;
+		return withJedis(jedis -> jedis.del(name));
 	}
 
 	public void setMapExpire(String name,int seconds){
 		if(!this.initialize) {
 			return;
 		}
-		Jedis jedis = this.getJedis();
-		try{
+		withJedisVoid(jedis -> {
 			jedis.expire(name.getBytes(), seconds);
-		} catch (Exception e) {
-			log.error(this.getClass().getSimpleName(), e);
-		}
+		});
 	}
 
 	public void setMapExpireAt(String name,Date atTime){
 		if(!this.initialize) {
 			return;
 		}
-		Jedis jedis = this.getJedis();
-		try{
+		withJedisVoid(jedis -> {
 			jedis.expireAt(name.getBytes(), atTime.getTime()/1000);
-		} catch (Exception e) {
-			log.error(this.getClass().getSimpleName(), e);
-		}
+		});
 	}
 
 
@@ -395,13 +319,7 @@
 		if(value == null){
 			return null;
 		}
-		Jedis jedis = this.getJedis();
-		try{
-			return jedis.rpush(name.getBytes(), Serialize.serialize(value));
-		} catch (Exception e) {
-			log.error(this.getClass().getSimpleName(), e);
-		}
-		return null;
+		return withJedis(jedis -> jedis.rpush(name.getBytes(), Serialize.serialize(value)));
 	}
 
 	// 鑾峰彇鍒楄〃澶撮儴鍏冪礌 && 鍒犻櫎
@@ -409,17 +327,13 @@
 		if(!this.initialize){
 			return null;
 		}
-		Jedis jedis = this.getJedis();
-		try{
+		return withJedis(jedis -> {
 			byte[] bytes = jedis.lpop(name.getBytes());
 			if(bytes == null || bytes.length == 0) {
 				return null;
 			}
 			return (T) Serialize.unSerialize(bytes);
-		} catch (Exception e) {
-			log.error(this.getClass().getSimpleName(), e);
-		}
-		return null;
+		});
 	}
 
 	// 鍒犻櫎
@@ -427,37 +341,25 @@
 		if(!this.initialize) {
 			return null;
 		}
-		Jedis jedis = this.getJedis();
-		try{
-			return jedis.del(name);
-		} catch (Exception e) {
-			log.error(this.getClass().getSimpleName(), e);
-		}
-		return null;
+		return withJedis(jedis -> jedis.del(name));
 	}
 
 	public void setListExpire(String name, int seconds){
 		if(!this.initialize) {
 			return;
 		}
-		Jedis jedis = this.getJedis();
-		try{
+		withJedisVoid(jedis -> {
 			jedis.expire(name.getBytes(), seconds);
-		} catch (Exception e) {
-			log.error(this.getClass().getSimpleName(), e);
-		}
+		});
 	}
 
 	public void setListExpireAt(String name, Date atTime){
 		if(!this.initialize) {
 			return;
 		}
-		Jedis jedis = this.getJedis();
-		try{
+		withJedisVoid(jedis -> {
 			jedis.expireAt(name.getBytes(), atTime.getTime()/1000);
-		} catch (Exception e) {
-			log.error(this.getClass().getSimpleName(), e);
-		}
+		});
 	}
 
 	// count ----------------------------------------------------------------------------------------------------------
@@ -466,26 +368,14 @@
 		if(!this.initialize) {
 			return null;
 		}
-		Jedis jedis = this.getJedis();
-		try{
-            return jedis.incr("COUNT." + key);
-		} catch (Exception e) {
-			log.error(this.getClass().getSimpleName(), e);
-		}
-		return null;
+		return withJedis(jedis -> jedis.incr("COUNT." + key));
 	}
 
 	public Long decr(String key) {
 		if(!this.initialize) {
 			return null;
 		}
-		Jedis jedis = this.getJedis();
-		try{
-            return jedis.decr("COUNT." + key);
-		} catch (Exception e) {
-			log.error(this.getClass().getSimpleName(), e);
-		}
-		return null;
+		return withJedis(jedis -> jedis.decr("COUNT." + key));
 	}
 
 }

--
Gitblit v1.9.1