From 2a34b52125d5fc356d65ee1e8912845dd601d4e3 Mon Sep 17 00:00:00 2001
From: cl <1442464845@qq.com>
Date: 星期五, 01 五月 2026 12:52:02 +0800
Subject: [PATCH] 多加入参数和修改规则
---
rsf-server/src/main/java/com/vincent/rsf/server/common/service/RedisService.java | 139 ++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 138 insertions(+), 1 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 87c8a4a..33f12ea 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
@@ -3,6 +3,7 @@
import com.vincent.rsf.common.utils.Serialize;
import com.vincent.rsf.server.common.config.RedisProperties;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import redis.clients.jedis.Jedis;
@@ -36,16 +37,19 @@
JedisPoolConfig config = new JedisPoolConfig();
config.setTestOnBorrow(false);
this.index = redisProperties.getIndex();
+ // 绌虹櫧瀵嗙爜浼� null锛屼笉鍚戞湭寮�璁よ瘉鐨� Redis 鍙� AUTH
+ String pwd = StringUtils.trimToNull(redisProperties.getPassword());
this.pool = new JedisPool(config
, redisProperties.getHost()
, redisProperties.getPort()
, redisProperties.getTimeout()
- , redisProperties.getPassword()
+ , pwd
);
}
return this.pool;
}
+ /** 鍊熻繛鎺ュけ璐ユ椂杩斿洖 null */
public Jedis getJedis(){
try{
Jedis jedis = this.getPool().getResource();
@@ -71,6 +75,9 @@
return null;
}
Jedis jedis = this.getJedis();
+ if (jedis == null) {
+ return null;
+ }
try{
return jedis.set((flag + LINK + key).getBytes(), Serialize.serialize(value));
} catch (Exception e) {
@@ -88,6 +95,9 @@
return null;
}
Jedis jedis = this.getJedis();
+ if (jedis == null) {
+ return null;
+ }
try{
return jedis.setex((flag + LINK + key).getBytes(), seconds, Serialize.serialize(value));
} catch (Exception e) {
@@ -101,6 +111,9 @@
return null;
}
Jedis jedis = this.getJedis();
+ if (jedis == null) {
+ return null;
+ }
try{
byte[] bytes = jedis.get((flag + LINK + key).getBytes());
if(bytes == null || bytes.length == 0 ) {
@@ -118,6 +131,9 @@
return null;
}
Jedis jedis = this.getJedis();
+ if (jedis == null) {
+ return null;
+ }
try{
return jedis.del((flag + LINK + key).getBytes());
} catch (Exception e) {
@@ -131,6 +147,9 @@
return null;
}
Jedis jedis = this.getJedis();
+ if (jedis == null) {
+ return null;
+ }
this.setValue(flag, "CLEARING", "true");
try{
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 + "*");
@@ -147,6 +166,9 @@
return;
}
Jedis jedis = this.getJedis();
+ if (jedis == null) {
+ return;
+ }
try{
jedis.expire((flag + LINK + key).getBytes(), seconds);
} catch (Exception e) {
@@ -160,6 +182,9 @@
return;
}
Jedis jedis = this.getJedis();
+ if (jedis == null) {
+ return;
+ }
try{
jedis.expireAt((flag + LINK + key).getBytes(), toTime.getTime()/1000);
} catch (Exception e) {
@@ -173,6 +198,9 @@
return null;
}
Jedis jedis = this.getJedis();
+ if (jedis == null) {
+ return null;
+ }
try{
return jedis.ttl((flag + LINK + key).getBytes());
} catch (Exception e) {
@@ -189,6 +217,9 @@
return null;
}
Jedis jedis = this.getJedis();
+ if (jedis == null) {
+ return null;
+ }
try{
return jedis.set(flag + LINK + key, value);
} catch (Exception e) {
@@ -202,6 +233,9 @@
return null;
}
Jedis jedis = this.getJedis();
+ if (jedis == null) {
+ return null;
+ }
try{
return jedis.setex(flag + LINK + key, seconds , value);
} catch (Exception e) {
@@ -215,6 +249,9 @@
return null;
}
Jedis jedis = this.getJedis();
+ if (jedis == null) {
+ return null;
+ }
try{
return jedis.get(flag + LINK + key);
} catch (Exception e) {
@@ -229,6 +266,9 @@
}
Jedis jedis = this.getJedis();
+ if (jedis == null) {
+ return null;
+ }
try{
String[] keys = new String[key.length];
for(int i=0;i<key.length;i++){
@@ -248,6 +288,9 @@
this.setValue(flag, "CLEARING", "true");
Jedis jedis = this.getJedis();
+ if (jedis == null) {
+ return null;
+ }
try{
Object returnValue = jedis.eval("return redis.call('del', unpack(redis.call('keys', ARGV[1])))",0,flag + LINK + "*");
@@ -263,6 +306,9 @@
return;
}
Jedis jedis = this.getJedis();
+ if (jedis == null) {
+ return;
+ }
try{
jedis.expire((flag + LINK + key).getBytes(), seconds);
} catch (Exception e) {
@@ -275,6 +321,9 @@
return;
}
Jedis jedis = this.getJedis();
+ if (jedis == null) {
+ return;
+ }
try{
jedis.expireAt((flag + LINK + key).getBytes(), atTime.getTime()/1000);
} catch (Exception e) {
@@ -294,6 +343,9 @@
return null;
}
Jedis jedis = this.getJedis();
+ if (jedis == null) {
+ return null;
+ }
try {
return jedis.hset(name.getBytes(), key.getBytes(), Serialize.serialize(value));
} catch (Exception e) {
@@ -307,6 +359,9 @@
return null;
}
Jedis jedis = this.getJedis();
+ if (jedis == null) {
+ return null;
+ }
try{
byte[] bytes = jedis.hget(name.getBytes(), key.getBytes());
if (bytes == null || bytes.length == 0) {
@@ -324,6 +379,9 @@
return null;
}
Jedis jedis = this.getJedis();
+ if (jedis == null) {
+ return null;
+ }
try{
return jedis.hkeys(name);
} catch (Exception e) {
@@ -337,6 +395,9 @@
return null;
}
Jedis jedis = this.getJedis();
+ if (jedis == null) {
+ return null;
+ }
try{
String[] keys = new String[key.length];
System.arraycopy(key, 0, keys, 0, key.length);
@@ -352,6 +413,9 @@
return null;
}
Jedis jedis = this.getJedis();
+ if (jedis == null) {
+ return null;
+ }
try{
return jedis.del(name);
} catch (Exception e) {
@@ -365,6 +429,9 @@
return;
}
Jedis jedis = this.getJedis();
+ if (jedis == null) {
+ return;
+ }
try{
jedis.expire(name.getBytes(), seconds);
} catch (Exception e) {
@@ -377,6 +444,9 @@
return;
}
Jedis jedis = this.getJedis();
+ if (jedis == null) {
+ return;
+ }
try{
jedis.expireAt(name.getBytes(), atTime.getTime()/1000);
} catch (Exception e) {
@@ -396,6 +466,9 @@
return null;
}
Jedis jedis = this.getJedis();
+ if (jedis == null) {
+ return null;
+ }
try{
return jedis.rpush(name.getBytes(), Serialize.serialize(value));
} catch (Exception e) {
@@ -410,6 +483,9 @@
return null;
}
Jedis jedis = this.getJedis();
+ if (jedis == null) {
+ return null;
+ }
try{
byte[] bytes = jedis.lpop(name.getBytes());
if(bytes == null || bytes.length == 0) {
@@ -428,6 +504,9 @@
return null;
}
Jedis jedis = this.getJedis();
+ if (jedis == null) {
+ return null;
+ }
try{
return jedis.del(name);
} catch (Exception e) {
@@ -441,6 +520,9 @@
return;
}
Jedis jedis = this.getJedis();
+ if (jedis == null) {
+ return;
+ }
try{
jedis.expire(name.getBytes(), seconds);
} catch (Exception e) {
@@ -453,6 +535,9 @@
return;
}
Jedis jedis = this.getJedis();
+ if (jedis == null) {
+ return;
+ }
try{
jedis.expireAt(name.getBytes(), atTime.getTime()/1000);
} catch (Exception e) {
@@ -467,6 +552,9 @@
return null;
}
Jedis jedis = this.getJedis();
+ if (jedis == null) {
+ return null;
+ }
try{
return jedis.incr("COUNT." + key);
} catch (Exception e) {
@@ -480,6 +568,9 @@
return null;
}
Jedis jedis = this.getJedis();
+ if (jedis == null) {
+ return null;
+ }
try{
return jedis.decr("COUNT." + key);
} catch (Exception e) {
@@ -488,4 +579,50 @@
return null;
}
+ /** SET NX EX锛涢敭宸插瓨鍦ㄨ繑鍥� false锛涙湭鍒濆鍖栨垨鍊熻繛鎺ュけ璐ヨ繑鍥� true锛岀敱璋冪敤鏂归檷绾� */
+ public boolean trySetStringNxEx(String flag, String key, String value, int expireSeconds) {
+ if (!this.initialize) {
+ return true;
+ }
+ Jedis jedis = this.getJedis();
+ if (jedis == null) {
+ return true;
+ }
+ try {
+ String fullKey = flag + LINK + key;
+ String r = jedis.set(fullKey, value, "NX", "EX", expireSeconds);
+ return "OK".equals(r);
+ } catch (Exception e) {
+ log.error(this.getClass().getSimpleName(), e);
+ return true;
+ }
+ }
+
+ /** SETNX + EXPIRE锛涙湭鎶㈠埌閿佽繑鍥� false锛沯edis 寮傚父鏃堕檷绾т负 true */
+ public boolean tryLockValue(String flag, String key, int expireSeconds) {
+ if(!this.initialize) {
+ return true;
+ }
+ Jedis jedis = this.getJedis();
+ if (jedis == null) {
+ return true;
+ }
+ try {
+ String lockKey = flag + LINK + key;
+ Long r = jedis.setnx(lockKey, "1");
+ if (r != null && r == 1L) {
+ jedis.expire(lockKey, expireSeconds);
+ return true;
+ }
+ return false;
+ } catch (Exception e) {
+ log.error(this.getClass().getSimpleName(), e);
+ return true;
+ }
+ }
+
+ public void unlockValue(String flag, String key) {
+ deleteValue(flag, key);
+ }
+
}
--
Gitblit v1.9.1