From 71cf9852ecc5d77b956d6d3050a7670a46cf3915 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期四, 16 三月 2023 09:18:27 +0800
Subject: [PATCH] 更新前后端分离部署文档
---
src/main/java/com/genersoft/iot/vmp/utils/redis/RedisUtil.java | 327 +++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 247 insertions(+), 80 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/utils/redis/RedisUtil.java b/src/main/java/com/genersoft/iot/vmp/utils/redis/RedisUtil.java
index 5db3c7f..e54ed53 100644
--- a/src/main/java/com/genersoft/iot/vmp/utils/redis/RedisUtil.java
+++ b/src/main/java/com/genersoft/iot/vmp/utils/redis/RedisUtil.java
@@ -1,32 +1,37 @@
package com.genersoft.iot.vmp.utils.redis;
+import com.alibaba.fastjson2.JSONObject;
+import com.genersoft.iot.vmp.utils.SpringBeanFactory;
+import org.springframework.data.redis.core.*;
+import org.springframework.util.CollectionUtils;
+
import java.util.*;
import java.util.concurrent.TimeUnit;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.redis.core.*;
-import org.springframework.stereotype.Component;
-import org.springframework.util.CollectionUtils;
-
/**
- * @Description:Redis宸ュ叿绫�
- * @author: swwheihei
- * @date: 2020骞�5鏈�6鏃� 涓嬪崍8:27:29
+ * Redis宸ュ叿绫�
+ * @author swwheihei
+ * @date 2020骞�5鏈�6鏃� 涓嬪崍8:27:29
*/
-@Component
@SuppressWarnings(value = {"rawtypes", "unchecked"})
public class RedisUtil {
- @Autowired
- private RedisTemplate redisTemplate;
-
+ private static RedisTemplate redisTemplate;
+
+ static {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
+
/**
* 鎸囧畾缂撳瓨澶辨晥鏃堕棿
* @param key 閿�
* @param time 鏃堕棿锛堢锛�
* @return true / false
*/
- public boolean expire(String key, long time) {
+ public static boolean expire(String key, long time) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
try {
if (time > 0) {
redisTemplate.expire(key, time, TimeUnit.SECONDS);
@@ -41,9 +46,11 @@
/**
* 鏍规嵁 key 鑾峰彇杩囨湡鏃堕棿
* @param key 閿�
- * @return
*/
- public long getExpire(String key) {
+ public static long getExpire(String key) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
return redisTemplate.getExpire(key, TimeUnit.SECONDS);
}
@@ -52,7 +59,10 @@
* @param key 閿�
* @return true / false
*/
- public boolean hasKey(String key) {
+ public static boolean hasKey(String key) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
try {
return redisTemplate.hasKey(key);
} catch (Exception e) {
@@ -66,7 +76,10 @@
* @SuppressWarnings("unchecked") 蹇界暐绫诲瀷杞崲璀﹀憡
* @param key 閿紙涓�涓垨鑰呭涓級
*/
- public boolean del(String... key) {
+ public static boolean del(String... key) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
try {
if (key != null && key.length > 0) {
if (key.length == 1) {
@@ -90,7 +103,10 @@
* @param key 閿�
* @return 鍊�
*/
- public Object get(String key) {
+ public static Object get(String key) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
return key == null ? null : redisTemplate.opsForValue().get(key);
}
@@ -100,7 +116,10 @@
* @param value 鍊�
* @return true / false
*/
- public boolean set(String key, Object value) {
+ public static boolean set(String key, Object value) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
try {
redisTemplate.opsForValue().set(key, value);
return true;
@@ -117,7 +136,10 @@
* @param time 鏃堕棿锛堢锛夛紝濡傛灉 time < 0 鍒欒缃棤闄愭椂闂�
* @return true / false
*/
- public boolean set(String key, Object value, long time) {
+ public static boolean set(String key, Object value, long time) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
try {
if (time > 0) {
redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS);
@@ -137,7 +159,10 @@
* @param delta 閫掑澶у皬
* @return
*/
- public long incr(String key, long delta) {
+ public static long incr(String key, long delta) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
if (delta < 0) {
throw new RuntimeException("閫掑鍥犲瓙蹇呴』澶т簬 0");
}
@@ -150,7 +175,10 @@
* @param delta 閫掑噺澶у皬
* @return
*/
- public long decr(String key, long delta) {
+ public static long decr(String key, long delta) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
if (delta < 0) {
throw new RuntimeException("閫掑噺鍥犲瓙蹇呴』澶т簬 0");
}
@@ -165,7 +193,10 @@
* @param item 椤癸紙no null锛�
* @return 鍊�
*/
- public Object hget(String key, String item) {
+ public static Object hget(String key, String item) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
return redisTemplate.opsForHash().get(key, item);
}
@@ -174,7 +205,10 @@
* @param key 閿紙no null锛�
* @return 瀵瑰簲鐨勫涓敭鍊�
*/
- public Map<Object, Object> hmget(String key) {
+ public static Map<Object, Object> hmget(String key) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
return redisTemplate.opsForHash().entries(key);
}
@@ -184,7 +218,10 @@
* @param map 鍊�
* @return true / false
*/
- public boolean hmset(String key, Map<Object, Object> map) {
+ public static boolean hmset(String key, Map<Object, Object> map) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
try {
redisTemplate.opsForHash().putAll(key, map);
return true;
@@ -201,7 +238,10 @@
* @param time 鏃堕棿
* @return true / false
*/
- public boolean hmset(String key, Map<Object, Object> map, long time) {
+ public static boolean hmset(String key, Map<?, ?> map, long time) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
try {
redisTemplate.opsForHash().putAll(key, map);
if (time > 0) {
@@ -221,7 +261,10 @@
* @param value 鍊�
* @return true / false
*/
- public boolean hset(String key, String item, Object value) {
+ public static boolean hset(String key, String item, Object value) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
try {
redisTemplate.opsForHash().put(key, item, value);
return true;
@@ -239,7 +282,10 @@
* @param time 鏃堕棿锛堝鏋滃師鏉ョ殑 Hash琛� 璁剧疆浜嗘椂闂达紝杩欓噷浼氳鐩栵級
* @return true / false
*/
- public boolean hset(String key, String item, Object value, long time) {
+ public static boolean hset(String key, String item, Object value, long time) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
try {
redisTemplate.opsForHash().put(key, item, value);
if (time > 0) {
@@ -257,7 +303,10 @@
* @param key 閿�
* @param item 椤癸紙鍙互澶氫釜锛宯o null锛�
*/
- public void hdel(String key, Object... item) {
+ public static void hdel(String key, Object... item) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
redisTemplate.opsForHash().delete(key, item);
}
@@ -267,7 +316,10 @@
* @param item 鍊硷紙no null锛�
* @return true / false
*/
- public boolean hHasKey(String key, String item) {
+ public static boolean hHasKey(String key, String item) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
return redisTemplate.opsForHash().hasKey(key, item);
}
@@ -278,7 +330,10 @@
* @param by 閫掑澶у皬 > 0
* @return
*/
- public Double hincr(String key, String item, Double by) {
+ public static Double hincr(String key, String item, Double by) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
return redisTemplate.opsForHash().increment(key, item, by);
}
@@ -289,7 +344,10 @@
* @param by 閫掑噺澶у皬
* @return
*/
- public Double hdecr(String key, String item, Double by) {
+ public static Double hdecr(String key, String item, Double by) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
return redisTemplate.opsForHash().increment(key, item, -by);
}
@@ -300,7 +358,10 @@
* @param key 閿�
* @return 鍊�
*/
- public Set<Object> sGet(String key) {
+ public static Set<Object> sGet(String key) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
try {
return redisTemplate.opsForSet().members(key);
} catch (Exception e) {
@@ -315,7 +376,10 @@
* @param value 鍊�
* @return true / false
*/
- public boolean sHasKey(String key, Object value) {
+ public static boolean sHasKey(String key, Object value) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
try {
return redisTemplate.opsForSet().isMember(key, value);
} catch (Exception e) {
@@ -330,7 +394,10 @@
* @param values 鍊硷紙鍙互澶氫釜锛�
* @return 鎴愬姛涓暟
*/
- public long sSet(String key, Object... values) {
+ public static long sSet(String key, Object... values) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
try {
return redisTemplate.opsForSet().add(key, values);
} catch (Exception e) {
@@ -346,7 +413,10 @@
* @param values 鍊硷紙鍙互澶氫釜锛�
* @return 鎴愬姛鏀惧叆涓暟
*/
- public long sSet(String key, long time, Object... values) {
+ public static long sSet(String key, long time, Object... values) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
try {
long count = redisTemplate.opsForSet().add(key, values);
if (time > 0) {
@@ -364,7 +434,10 @@
* @param key 閿�
* @return 闀垮害
*/
- public long sGetSetSize(String key) {
+ public static long sGetSetSize(String key) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
try {
return redisTemplate.opsForSet().size(key);
} catch (Exception e) {
@@ -379,7 +452,10 @@
* @param values 鍊�
* @return 鎴愬姛绉婚櫎涓暟
*/
- public long setRemove(String key, Object... values) {
+ public static long setRemove(String key, Object... values) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
try {
return redisTemplate.opsForSet().remove(key, values);
} catch (Exception e) {
@@ -396,7 +472,10 @@
* @param value
* @param score
*/
- public void zAdd(Object key, Object value, double score) {
+ public static void zAdd(Object key, Object value, double score) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
redisTemplate.opsForZSet().add(key, value, score);
}
@@ -406,7 +485,10 @@
* @param key
* @param value
*/
- public void zRemove(Object key, Object value) {
+ public static void zRemove(Object key, Object value) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
redisTemplate.opsForZSet().remove(key, value);
}
@@ -415,10 +497,13 @@
*
* @param key
* @param value
- * @param score
+ * @param delta -1 琛ㄧず鍑� 1 琛ㄧず鍔�1
*/
- public Double zIncrScore(Object key, Object value, double score) {
- return redisTemplate.opsForZSet().incrementScore(key, value, score);
+ public static Double zIncrScore(Object key, Object value, double delta) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
+ return redisTemplate.opsForZSet().incrementScore(key, value, delta);
}
/**
@@ -428,7 +513,10 @@
* @param value
* @return
*/
- public Double zScore(Object key, Object value) {
+ public static Double zScore(Object key, Object value) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
return redisTemplate.opsForZSet().score(key, value);
}
@@ -439,7 +527,10 @@
* @param value
* @return
*/
- public Long zRank(Object key, Object value) {
+ public static Long zRank(Object key, Object value) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
return redisTemplate.opsForZSet().rank(key, value);
}
@@ -449,7 +540,10 @@
* @param key
* @return
*/
- public Long zSize(Object key) {
+ public static Long zSize(Object key) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
return redisTemplate.opsForZSet().zCard(key);
}
@@ -463,7 +557,10 @@
* @param end
* @return
*/
- public Set<Object> ZRange(Object key, int start, int end) {
+ public static Set<Object> zRange(Object key, int start, int end) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
return redisTemplate.opsForZSet().range(key, start, end);
}
/**
@@ -474,7 +571,10 @@
* @param end
* @return
*/
- public Set<ZSetOperations.TypedTuple<String>> zRangeWithScore(Object key, int start, int end) {
+ public static Set<ZSetOperations.TypedTuple<String>> zRangeWithScore(Object key, int start, int end) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
return redisTemplate.opsForZSet().rangeWithScores(key, start, end);
}
/**
@@ -487,7 +587,10 @@
* @param end
* @return
*/
- public Set<String> zRevRange(Object key, int start, int end) {
+ public static Set<String> zRevRange(Object key, int start, int end) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
return redisTemplate.opsForZSet().reverseRange(key, start, end);
}
/**
@@ -498,7 +601,10 @@
* @param max
* @return
*/
- public Set<String> zSortRange(Object key, int min, int max) {
+ public static Set<String> zSortRange(Object key, int min, int max) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
return redisTemplate.opsForZSet().rangeByScore(key, min, max);
}
@@ -512,7 +618,10 @@
* @param end 缁撴潫锛�0 鍒� -1 浠h〃鎵�鏈夊�硷級
* @return
*/
- public List<Object> lGet(String key, long start, long end) {
+ public static List<Object> lGet(String key, long start, long end) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
try {
return redisTemplate.opsForList().range(key, start, end);
} catch (Exception e) {
@@ -526,7 +635,10 @@
* @param key 閿�
* @return 闀垮害
*/
- public long lGetListSize(String key) {
+ public static long lGetListSize(String key) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
try {
return redisTemplate.opsForList().size(key);
} catch (Exception e) {
@@ -543,7 +655,10 @@
* 褰� index < 0 鏃� {-1:琛ㄥ熬, -2:鍊掓暟绗簩涓厓绱爙
* @return 鍊�
*/
- public Object lGetIndex(String key, long index) {
+ public static Object lGetIndex(String key, long index) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
try {
return redisTemplate.opsForList().index(key, index);
} catch (Exception e) {
@@ -558,7 +673,10 @@
* @param value 鍊�
* @return true / false
*/
- public boolean lSet(String key, Object value) {
+ public static boolean lSet(String key, Object value) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
try {
redisTemplate.opsForList().rightPush(key, value);
return true;
@@ -575,7 +693,10 @@
* @param time 鏃堕棿
* @return true / false
*/
- public boolean lSet(String key, Object value, long time) {
+ public static boolean lSet(String key, Object value, long time) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
try {
redisTemplate.opsForList().rightPush(key, value);
if (time > 0) {
@@ -594,7 +715,10 @@
* @param values 鍊�
* @return true / false
*/
- public boolean lSetList(String key, List<Object> values) {
+ public static boolean lSetList(String key, List<Object> values) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
try {
redisTemplate.opsForList().rightPushAll(key, values);
return true;
@@ -611,7 +735,10 @@
* @param time 鏃堕棿
* @return true / false
*/
- public boolean lSetList(String key, List<Object> values, long time) {
+ public static boolean lSetList(String key, List<Object> values, long time) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
try {
redisTemplate.opsForList().rightPushAll(key, values);
if (time > 0) {
@@ -631,7 +758,10 @@
* @param value 鍊�
* @return true / false
*/
- public boolean lUpdateIndex(String key, long index, Object value) {
+ public static boolean lUpdateIndex(String key, long index, Object value) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
try {
redisTemplate.opsForList().set(key, index, value);
return true;
@@ -650,7 +780,10 @@
* @param value
* @return
*/
- public long lRemove(String key, long count, Object value) {
+ public static long lRemove(String key, long count, Object value) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
try {
return redisTemplate.opsForList().remove(key, count, value);
} catch (Exception e) {
@@ -660,11 +793,38 @@
}
/**
+ * 鍦ㄩ敭涓� key 鐨� list涓Щ闄ょ涓�涓厓绱�
+ * @param key 閿�
+ * @return
+ */
+ public static Object lLeftPop(String key) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
+ return redisTemplate.opsForList().leftPop(key);
+ }
+
+ /**
+ * 鍦ㄩ敭涓� key 鐨� list涓Щ闄ゃ�佹渶鍚庝竴涓厓绱�
+ * @param key 閿�
+ * @return
+ */
+ public static Object lrightPop(String key) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
+ return redisTemplate.opsForList().rightPop(key);
+ }
+
+ /**
* 妯$硦鏌ヨ
* @param key 閿�
* @return true / false
*/
- public List<Object> keys(String key) {
+ public static List<Object> keys(String key) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
try {
Set<String> set = redisTemplate.keys(key);
return new ArrayList<>(set);
@@ -680,7 +840,7 @@
* @param query 鏌ヨ鍙傛暟
* @return
*/
-// public List<Object> scan(String query) {
+// public static List<Object> scan(String query) {
// List<Object> result = new ArrayList<>();
// try {
// Cursor<Map.Entry<Object,Object>> cursor = redisTemplate.opsForHash().scan("field",
@@ -704,29 +864,36 @@
* @param query 鏌ヨ鍙傛暟
* @return
*/
- public List<Object> scan(String query) {
- Set<String> keys = (Set<String>) redisTemplate.execute((RedisCallback<Set<String>>) connection -> {
- Set<String> keysTmp = new HashSet<>();
- Cursor<byte[]> cursor = connection.scan(new ScanOptions.ScanOptionsBuilder().match(query).count(1000).build());
- while (cursor.hasNext()) {
- keysTmp.add(new String(cursor.next()));
+ public static List<Object> scan(String query) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
+ Set<String> resultKeys = (Set<String>) redisTemplate.execute((RedisCallback<Set<String>>) connection -> {
+ ScanOptions scanOptions = ScanOptions.scanOptions().match("*" + query + "*").count(1000).build();
+ Cursor<byte[]> scan = connection.scan(scanOptions);
+ Set<String> keys = new HashSet<>();
+ while (scan.hasNext()) {
+ byte[] next = scan.next();
+ keys.add(new String(next));
}
- return keysTmp;
+ return keys;
});
-// Set<String> keys = (Set<String>) redisTemplate.execute(new RedisCallback<Set<String>>(){
-//
-// @Override
-// public Set<String> doInRedis(RedisConnection connection) throws DataAccessException {
-// Set<String> keysTmp = new HashSet<>();
-// Cursor<byte[]> cursor = connection.scan(new ScanOptions.ScanOptionsBuilder().match(query).count(1000).build());
-// while (cursor.hasNext()) {
-// keysTmp.add(new String(cursor.next()));
-// }
-// return keysTmp;
-// }
-// });
+ return new ArrayList<>(resultKeys);
+ }
+ public static List<Object> scan2(String query) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
+ Set<String> keys = redisTemplate.keys(query);
return new ArrayList<>(keys);
}
+ // ============================== 娑堟伅鍙戦�佷笌璁㈤槄 ==============================
+ public static void convertAndSend(String channel, JSONObject msg) {
+ if (redisTemplate == null) {
+ redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+ }
+ redisTemplate.convertAndSend(channel, msg);
+ }
}
--
Gitblit v1.8.0