From 2809275eb14deca48f62a28d7f1e604843d1b1da Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@gmail.com>
Date: 星期三, 12 二月 2025 22:18:17 +0800
Subject: [PATCH] #
---
rsf-common/src/main/java/com/vincent/rsf/common/utils/RedisSupport.java | 609 +++++++++++++++++++++++-------------------------------
rsf-common/src/main/java/com/vincent/rsf/common/utils/Serialize.java | 10
2 files changed, 266 insertions(+), 353 deletions(-)
diff --git a/rsf-common/src/main/java/com/vincent/rsf/common/utils/RedisSupport.java b/rsf-common/src/main/java/com/vincent/rsf/common/utils/RedisSupport.java
index 2c414be..aa90caf 100644
--- a/rsf-common/src/main/java/com/vincent/rsf/common/utils/RedisSupport.java
+++ b/rsf-common/src/main/java/com/vincent/rsf/common/utils/RedisSupport.java
@@ -1,6 +1,6 @@
package com.vincent.rsf.common.utils;
-
+import lombok.extern.slf4j.Slf4j;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
@@ -11,26 +11,19 @@
import java.util.Set;
/**
- * 缂撳瓨鏀寔
+ * redis tools
* Created by vincent on 2023-03-13
*/
+@Slf4j
public class RedisSupport {
- private static final Map<String, RedisSupport> redis = new HashMap<>();
+ private static final Map<String, RedisSupport> REDIS_CACHE = new HashMap<>();
- public static final String defaultRedisFlag = "redis";
+ public static final String DEFAULT_FLAG = "redis";
- public static RedisSupport defaultRedisSupport = RedisSupport.getRedis(defaultRedisFlag);
+ private static final String LINK = ".";
- public synchronized static RedisSupport getRedis(String name){
- RedisSupport redisSupport = redis.get(name);
- if(redisSupport!=null) {
- return redisSupport;
- }
- redisSupport = new RedisSupport(name);
- redis.put(name, redisSupport);
- return redisSupport;
- }
+ public static RedisSupport defaultRedisSupport = RedisSupport.getRedis(DEFAULT_FLAG);
protected JedisPool pool;
@@ -40,413 +33,340 @@
public Boolean initialize = false;
+ public synchronized static RedisSupport getRedis(String name){
+ RedisSupport redisSupport = REDIS_CACHE.get(name);
+ if (null == redisSupport){
+ redisSupport = new RedisSupport(name);
+ REDIS_CACHE.put(name, redisSupport);
+ }
+ return redisSupport;
+ }
+
private RedisSupport(String name) {
try {
boolean bAll = true;
String[] configKeys={"host","port","max","min","timeout","index"};
- for(String key:configKeys){
- if(!ConfigHelper.contains(name+"."+key)){
- System.err.println();
+ for(String key : configKeys){
+ if(!ConfigHelper.contains(name + "." + key)){
bAll = false;
}
}
- if(bAll){
+ if (bAll) {
config = new JedisPoolConfig();
config.setMaxIdle(ConfigHelper.getInteger(name+".min"));
config.setMaxWaitMillis(ConfigHelper.getLong(name+".timeout"));
- //鍦╞orrow涓�涓猨edis瀹炰緥鏃讹紝鏄惁鎻愬墠杩涜validate鎿嶄綔锛涘鏋滀负true锛屽垯寰楀埌鐨刯edis瀹炰緥鍧囨槸鍙敤鐨勶紱
+ // 鍦╞orrow涓�涓猨edis瀹炰緥鏃讹紝鏄惁鎻愬墠杩涜validate鎿嶄綔锛涘鏋滀负true锛屽垯寰楀埌鐨刯edis瀹炰緥鍧囨槸鍙敤鐨勶紱
config.setTestOnBorrow(false);
- //褰撳墠jedis杩炴帴鐨勫簱鍙�
+ // 褰撳墠jedis杩炴帴鐨勫簱鍙�
index = ConfigHelper.getInteger(name+".index");
- //瀹炰緥鍖杍edis姹�
+ // 瀹炰緥鍖杍edis姹�
String host = ConfigHelper.getString(name+".host");
int port = ConfigHelper.getInteger(name+".port");
int timeout = ConfigHelper.getInteger(name+".timeout");
String password = ConfigHelper.getString(name+".password");
- JedisPool d ;
pool = new JedisPool(config,host , port,timeout,password);
- //鍒濆鍖�
Jedis jedis = this.getJedis();
this.pool.returnResource(jedis);
initialize = true;
- }else{
- System.err.println("ERROR - 鍒濆鍖朢eids鏃跺嚭閿欙紝鍦ㄩ厤缃枃浠朵腑鏈壘鍒�"+name+".***灞炴��(host,port,max,min,timeout,index)");
+ } else {
+ log.error("ERROR - 鍒濆鍖朢eids鏃跺嚭閿欙紝鍦ㄩ厤缃枃浠朵腑鏈壘鍒皗}.***灞炴��(host,port,max,min,timeout,index)", name);
}
- }catch(Exception ex){
- ex.printStackTrace();
+ } catch (Exception e) {
+ log.error(this.getClass().getSimpleName(), e);
}
}
-
public Jedis getJedis(){
try{
Jedis jedis = pool.getResource();
- if(this.index!=jedis.getDB().intValue())
+
+ if(this.index != jedis.getDB().intValue()) {
jedis.select(this.index);
+ }
return jedis;
- }catch(Exception ex){
- System.err.println(ex.getMessage());
+ } catch (Exception e){
+ log.error(this.getClass().getSimpleName(), e);
}
+
return null;
}
- public void retJedis(Jedis jedis){
- if(jedis!=null)
- this.pool.returnResource(jedis);
- }
-
-
- Date last_console_time = new Date();
- Boolean console = false;
- public void console(Object...objects){
- if(!this.initialize)return;
- if((new Date().getTime()-last_console_time.getTime())>(1000*30)){
- Jedis jedis = this.getJedis();
- try{
- console = "true".equals(jedis.get("INI.console"));
- }catch(Exception ex){
- System.err.println(ex.getMessage());
- }finally{
- if(jedis!=null)
- this.pool.returnResource(jedis);
- }
- last_console_time = new Date();
- }
- if(!console)return;
- StringBuilder strConsole = new StringBuilder("REDIS -");
- for(Object object:objects) {
- strConsole.append(" ").append(object);
- }
- System.out.println(strConsole);
- }
-
-
-
- public Object setMap(String name, String key, Object value) {
- if(!this.initialize)return null;
- console("set map value",name,key,value);
- if(value==null){
- deleteMap(name,key);
- return null;
- }
- Jedis jedis = this.getJedis();
- try{
- jedis.hset(("MAP."+name).getBytes(),key.getBytes(), Serialize.serialize(value));
- }catch(Exception ex){
- //Utils.trace(ex.getMessage());
- }finally{
- if(jedis!=null)
- this.pool.returnResource(jedis);
- }
- return value;
- }
- public <T> T getMap(String name, String key) {
- if(!this.initialize)return null;
- console("get map value",name,key);
- Jedis jedis = this.getJedis();
- try{
- byte[] bytes = jedis.hget(("MAP."+name).getBytes(),key.getBytes());
- if(bytes==null||bytes.length==0)
- return null;
- return (T) Serialize.unSerialize(bytes);
- }catch(Exception ex){
- //Utils.trace(ex.getMessage());
- }finally{
- if(jedis!=null)
- this.pool.returnResource(jedis);
- }
- return null;
- }
- public Set<String> getMapKeys(String name) {
- if(!this.initialize)return null;
- console("get map keys",name);
- Jedis jedis = this.getJedis();
- try{
- Set<String> keys = jedis.hkeys(("MAP."+name));
- return keys;
- }catch(Exception ex){
- //Utils.trace(ex.getMessage());
- }finally{
- if(jedis!=null)
- this.pool.returnResource(jedis);
- }
- return null;
- }
- public Long deleteMap(String name, String... key) {
- if(!this.initialize)return null;
- console("delete value",name,key);
- Jedis jedis = this.getJedis();
- try{
- String[] keys=new String[key.length];
- for(int i=0;i<key.length;i++){
- keys[i]=key[i];
- }
- Long returnMap = jedis.hdel("MAP."+name, keys);
- return returnMap;
- }catch(Exception ex){
- //Utils.trace(ex.getMessage());
- }finally{
- if(jedis!=null)
- this.pool.returnResource(jedis);
- }
- return null;
- }
- public Long clearMap(String name) {
- if(!this.initialize)return null;
- console("clear value",name);
- Jedis jedis = this.getJedis();
- try{
- return jedis.del("MAP."+name);
- }catch(Exception ex){
- //Utils.trace(ex.getMessage());
- }finally{
- if(jedis!=null)
- this.pool.returnResource(jedis);
- }
- return null;
- }
- public void setMapExpire(String name,int seconds){
- if(!this.initialize)return;
- Jedis jedis = this.getJedis();
- try{
- jedis.expire(("MAP."+name).getBytes(), seconds);
- }catch(Exception ex){
- //Utils.trace(ex.getMessage());
- }finally{
- if(jedis!=null)
- this.pool.returnResource(jedis);
- }
- }
- public void setMapExpireTime(String name,Date atTime){
- if(!this.initialize)return;
- Jedis jedis = this.getJedis();
- try{
- jedis.expireAt(("MAP."+name).getBytes(), atTime.getTime()/1000);
- }catch(Exception ex){
- //Utils.trace(ex.getMessage());
- }finally{
- if(jedis!=null)
- this.pool.returnResource(jedis);
- }
- }
-
-
-
-
-
-
-
-
-
-
- /**
- * 鍒楄〃鏈熬娣诲姞鍏冪礌
- * @param name
- * @param value
- * @return
- */
- public Object push(String name, Object value) {
- if(!this.initialize)return null;
- console("push list value",name,value);
- if(value==null){
- return null;
- }
- Jedis jedis = this.getJedis();
- try{
- jedis.rpush(("LIST."+name).getBytes(),Serialize.serialize(value));
- }catch(Exception ex){
- //Utils.trace(ex.getMessage());
- }finally{
- if(jedis!=null)
- this.pool.returnResource(jedis);
- }
- return value;
- }
- /**
- * 鑾峰彇鍒楄〃澶撮儴鍏冪礌
- * @param <T>
- * @param name
- * @return
- */
- public <T> T pop(String name) {
- if(!this.initialize)return null;
- console("get list value",name);
- Jedis jedis = this.getJedis();
- try{
- byte[] bytes = jedis.lpop(("LIST."+name).getBytes());
- if(bytes==null||bytes.length==0)
- return null;
- return (T) Serialize.unSerialize(bytes);
- }catch(Exception ex){
- System.err.println(ex.getMessage());
- }finally{
- if(jedis!=null)
- this.pool.returnResource(jedis);
- }
- return null;
- }
- public Long deleteList(String name) {
- if(!this.initialize)return null;
- console("delete list",name);
- Jedis jedis = this.getJedis();
- try{
- return jedis.del("LIST."+name);
- }catch(Exception ex){
- //Utils.trace(ex.getMessage());
- }finally{
- if(jedis!=null)
- this.pool.returnResource(jedis);
- }
- return null;
- }
- public void setListExpire(String name,int seconds){
- if(!this.initialize)return;
- Jedis jedis = this.getJedis();
- try{
- jedis.expire(("LIST."+name).getBytes(), seconds);
- }catch(Exception ex){
- //Utils.trace(ex.getMessage());
- }finally{
- if(jedis!=null)
- this.pool.returnResource(jedis);
- }
- }
- public void setListExpireTime(String name,Date atTime){
- if(!this.initialize)return;
- Jedis jedis = this.getJedis();
- try{
- jedis.expireAt(("LIST."+name).getBytes(), atTime.getTime()/1000);
- }catch(Exception ex){
- //Utils.trace(ex.getMessage());
- }finally{
- if(jedis!=null)
- this.pool.returnResource(jedis);
- }
- }
-
-
-
-
-
-
-
-
-
-
-
-
+ // key - value ----------------------------------------------------------------------------------------------------------
public String setValue(String flag, String key, String value) {
- if(!this.initialize)return null;
- console("set value",flag,key,value);
-
+ if(!this.initialize) {
+ return null;
+ }
Jedis jedis = this.getJedis();
try{
- String result = jedis.set("KV."+flag+"."+key, value);
- }catch(Exception ex){
- //Utils.trace(ex.getMessage());
- }finally{
- if(jedis!=null)
- this.pool.returnResource(jedis);
+ return jedis.set(flag + LINK + key, value);
+ } catch (Exception e) {
+ log.error(this.getClass().getSimpleName(), e);
}
- return value;
+ return null;
}
+
public String setValue(String flag, String key, String value,Integer seconds) {
- if(!this.initialize)return null;
- console("set value",flag,key,value,seconds);
-
+ if(!this.initialize) {
+ return null;
+ }
Jedis jedis = this.getJedis();
try{
- String result = jedis.setex("KV."+flag+"."+key,seconds,value);
- }catch(Exception ex){
- //Utils.trace(ex.getMessage());
- }finally{
- if(jedis!=null)
- this.pool.returnResource(jedis);
+ return jedis.setex(flag + LINK + key, seconds , value);
+ } catch (Exception e) {
+ log.error(this.getClass().getSimpleName(), e);
}
- return value;
+ return null;
}
+
public String getValue(String flag, String key) {
- if(!this.initialize)return null;
- console("get value",flag,key);
-
+ if(!this.initialize) {
+ return null;
+ }
Jedis jedis = this.getJedis();
try{
- String returnValue = jedis.get("KV."+flag+"."+key);
- return returnValue;
- }catch(Exception ex){
- //Utils.trace(ex.getMessage());
- }finally{
- if(jedis!=null)
- this.pool.returnResource(jedis);
+ return jedis.get(flag + LINK + key);
+ } catch (Exception e) {
+ log.error(this.getClass().getSimpleName(), e);
}
return null;
}
+
public Long deleteValue(String flag, String... key) {
- if(!this.initialize)return null;
- console("delete value",flag,key);
+ if(!this.initialize) {
+ return null;
+ }
Jedis jedis = this.getJedis();
try{
- String[] keys=new String[key.length];
+ String[] keys = new String[key.length];
for(int i=0;i<key.length;i++){
- keys[i]="KV."+flag+"."+key[i];
+ keys[i] = flag + LINK + key[i];
}
- Long returnValue = jedis.del(keys);
- return returnValue;
- }catch(Exception ex){
- //Utils.trace(ex.getMessage());
- }finally{
- if(jedis!=null)
- this.pool.returnResource(jedis);
+ return jedis.del(keys);
+ } catch (Exception e) {
+ log.error(this.getClass().getSimpleName(), e);
}
return null;
}
+
public Long clearValue(String flag) {
- if(!this.initialize)return null;
- console("clear value",flag);
+ if(!this.initialize) {
+ return null;
+ }
this.setValue(flag, "CLEARING", "true");
Jedis jedis = this.getJedis();
try{
- //EVAL "return redis.call('del', unpack(redis.call('keys', ARGV[1])))" 0 KV.*
- Object returnValue = jedis.eval("return redis.call('del', unpack(redis.call('keys', ARGV[1])))",0,"KV."+flag+"."+"*");
+ 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 ex){
- //Utils.trace(ex.getMessage());
- }finally{
- if(jedis!=null)
- this.pool.returnResource(jedis);
+ } catch (Exception e) {
+ log.error(this.getClass().getSimpleName(), e);
}
return null;
}
public void setValueExpire(String flag, String key,int seconds){
- if(!this.initialize)return;
+ if(!this.initialize) {
+ return;
+ }
Jedis jedis = this.getJedis();
try{
- jedis.expire(("KV."+flag+"."+key).getBytes(), seconds);
- }catch(Exception ex){
- //Utils.trace(ex.getMessage());
- }finally{
- if(jedis!=null)
- this.pool.returnResource(jedis);
+ jedis.expire((flag + LINK + key).getBytes(), seconds);
+ } catch (Exception e) {
+ log.error(this.getClass().getSimpleName(), e);
+ }
+ }
+
+ public void setValueExpireTime(String flag, String key,Date atTime){
+ if(!this.initialize) {
+ return;
+ }
+ Jedis jedis = this.getJedis();
+ try{
+ jedis.expireAt((flag + LINK + key).getBytes(), atTime.getTime()/1000);
+ } catch (Exception e) {
+ log.error(this.getClass().getSimpleName(), e);
}
}
- public void setValueExpireTime(String flag, String key,Date atTime){
- if(!this.initialize)return;
+ // hash ----------------------------------------------------------------------------------------------------------
+
+ public Long setMap(String name, String key, Object value) {
+ if(!this.initialize) {
+ return null;
+ }
+ if(value == null){
+ 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;
+ }
+
+ public <T> T getMap(String name, String key) {
+ if(!this.initialize) {
+ return null;
+ }
Jedis jedis = this.getJedis();
try{
- jedis.expireAt(("KV."+flag+"."+key).getBytes(), atTime.getTime()/1000);
- }catch(Exception ex){
- //Utils.trace(ex.getMessage());
- }finally{
- if(jedis!=null)
- this.pool.returnResource(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;
+ }
+
+ public Long deleteMap(String name, String... key) {
+ if(!this.initialize) {
+ return null;
+ }
+ Jedis jedis = this.getJedis();
+ try{
+ 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;
+ }
+
+ public void setMapExpire(String name,int seconds){
+ if(!this.initialize) {
+ return;
+ }
+ Jedis jedis = this.getJedis();
+ try{
+ jedis.expire(name.getBytes(), seconds);
+ } catch (Exception e) {
+ log.error(this.getClass().getSimpleName(), e);
+ }
+ }
+
+ public void setMapExpireTime(String name,Date atTime){
+ if(!this.initialize) {
+ return;
+ }
+ Jedis jedis = this.getJedis();
+ try{
+ jedis.expireAt(name.getBytes(), atTime.getTime()/1000);
+ } catch (Exception e) {
+ log.error(this.getClass().getSimpleName(), e);
+ }
+ }
+
+
+ // mq ----------------------------------------------------------------------------------------------------------
+
+ // 鍒楄〃鏈熬娣诲姞鍏冪礌
+ public Long push(String name, Object value) {
+ if(!this.initialize) {
+ return null;
+ }
+ 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;
+ }
+
+ // 鑾峰彇鍒楄〃澶撮儴鍏冪礌 && 鍒犻櫎
+ public <T> T pop(String name) {
+ if(!this.initialize){
+ return null;
+ }
+ Jedis jedis = this.getJedis();
+ try{
+ 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;
+ }
+
+ // 鍒犻櫎
+ public Long deleteList(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;
+ }
+
+ public void setListExpire(String name, int seconds){
+ if(!this.initialize) {
+ return;
+ }
+ Jedis jedis = this.getJedis();
+ try{
+ jedis.expire(name.getBytes(), seconds);
+ } catch (Exception e) {
+ log.error(this.getClass().getSimpleName(), e);
+ }
+ }
+
+ public void setListExpireTime(String name, Date atTime){
+ if(!this.initialize) {
+ return;
+ }
+ Jedis jedis = this.getJedis();
+ try{
+ jedis.expireAt(name.getBytes(), atTime.getTime()/1000);
+ } catch (Exception e) {
+ log.error(this.getClass().getSimpleName(), e);
}
}
@@ -462,7 +382,6 @@
public Object setObject(String flag,String key, Object value) {
if(!this.initialize)return null;
- console("set object",flag,key,value);
if(value==null){
this.deleteObject(flag, key);
@@ -482,7 +401,6 @@
}
public Object setObject(String flag,String key, Object value,Integer seconds) {
if(!this.initialize)return null;
- console("set object",flag,key,value,seconds);
if(value==null){
this.deleteObject(flag, key);
@@ -502,8 +420,6 @@
}
public <T> T getObject(String flag,String key) {
if(!this.initialize)return null;
- console("get object",flag,key);
-
Jedis jedis = this.getJedis();
try{
byte[] bytes = jedis.get(("OBJ."+flag+"."+key).getBytes());
@@ -522,7 +438,6 @@
public <T> Long deleteObject(String flag, String key) {
if(!this.initialize)return null;
- console("delete object",flag,key);
Jedis jedis = this.getJedis();
try{
@@ -540,7 +455,6 @@
public <T> Long clearObject(String flag) {
if(!this.initialize)return null;
- console("clear object",flag);
this.setObject(flag, "CLEARING", "true");
Jedis jedis = this.getJedis();
@@ -594,7 +508,6 @@
public String[] getKeys(String pattern) {
if(!this.initialize)return null;
- console("keys",pattern);
Jedis jedis = this.getJedis();
try{
diff --git a/rsf-common/src/main/java/com/vincent/rsf/common/utils/Serialize.java b/rsf-common/src/main/java/com/vincent/rsf/common/utils/Serialize.java
index 74b4fee..f3bf30e 100644
--- a/rsf-common/src/main/java/com/vincent/rsf/common/utils/Serialize.java
+++ b/rsf-common/src/main/java/com/vincent/rsf/common/utils/Serialize.java
@@ -1,10 +1,12 @@
package com.vincent.rsf.common.utils;
+import lombok.extern.slf4j.Slf4j;
+
import java.io.*;
+@Slf4j
public class Serialize {
- // 搴忓垪鍖�
public static byte[] serialize(Object object) {
ObjectOutputStream oos = null;
ByteArrayOutputStream baos = null;
@@ -14,12 +16,11 @@
oos.writeObject(object);
return baos.toByteArray();
} catch (Exception e) {
- e.printStackTrace();
+ log.error("Serialize.serialize", e);
}
return null;
}
- // 鍙嶅簭鍒楀寲
public static Object unSerialize(byte[] bytes) {
ByteArrayInputStream bais = null;
try {
@@ -34,10 +35,9 @@
};
return ois.readObject();
} catch (Exception e) {
- e.printStackTrace();
+ log.error("Serialize.unSerialize", e);
}
return null;
}
-
}
--
Gitblit v1.9.1