From 5d901b5e3f033e8b04e53420d68626cbd87431c8 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期五, 06 五月 2022 10:12:34 +0800
Subject: [PATCH] 使用阿里代码规范。规范代码写法

---
 src/main/java/com/genersoft/iot/vmp/utils/redis/RedisUtil.java |  121 +++++++++++++++++++++++++++++++++-------
 1 files changed, 100 insertions(+), 21 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 463d942..8ab0672 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,23 +1,21 @@
 package com.genersoft.iot.vmp.utils.redis;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 import java.util.concurrent.TimeUnit;
 
+import com.alibaba.fastjson.JSONObject;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.data.redis.core.ZSetOperations;
+import org.springframework.data.redis.core.*;
 import org.springframework.stereotype.Component;
 import org.springframework.util.CollectionUtils;
 
 /**    
- * @Description:Redis宸ュ叿绫�
+ * @description:Redis宸ュ叿绫�
  * @author: swwheihei
  * @date:   2020骞�5鏈�6鏃� 涓嬪崍8:27:29     
  */
 @Component
+@SuppressWarnings(value = {"rawtypes", "unchecked"})
 public class RedisUtil {
 
 	@Autowired
@@ -399,7 +397,7 @@
      * @param value
      * @param score
      */
-    public void zAdd(String key, String value, double score) {
+    public void zAdd(Object key, Object value, double score) {
         redisTemplate.opsForZSet().add(key, value, score);
     }
 
@@ -409,7 +407,7 @@
      * @param key
      * @param value
      */
-    public void zRemove(String key, String value) {
+    public void zRemove(Object key, Object value) {
         redisTemplate.opsForZSet().remove(key, value);
     }
 
@@ -418,10 +416,10 @@
      *
      * @param key
      * @param value
-     * @param score
+     * @param delta -1 琛ㄧず鍑� 1 琛ㄧず鍔�1
      */
-    public Double zIncrScore(String key, String value, double score) {
-        return redisTemplate.opsForZSet().incrementScore(key, value, score);
+    public Double zIncrScore(Object key, Object value, double delta) {
+        return redisTemplate.opsForZSet().incrementScore(key, value, delta);
     }
 
     /**
@@ -431,7 +429,7 @@
      * @param value
      * @return
      */
-    public Double zScore(String key, String value) {
+    public Double zScore(Object key, Object value) {
         return redisTemplate.opsForZSet().score(key, value);
     }
 
@@ -442,7 +440,7 @@
      * @param value
      * @return
      */
-    public Long zRank(String key, String value) {
+    public Long zRank(Object key, Object value) {
         return redisTemplate.opsForZSet().rank(key, value);
     }
 
@@ -452,7 +450,7 @@
      * @param key
      * @return
      */
-    public Long zSize(String key) {
+    public Long zSize(Object key) {
         return redisTemplate.opsForZSet().zCard(key);
     }
 
@@ -466,7 +464,7 @@
      * @param end
      * @return
      */
-    public Set<String> ZRange(String key, int start, int end) {
+    public Set<Object> ZRange(Object key, int start, int end) {
         return redisTemplate.opsForZSet().range(key, start, end);
     }
     /**
@@ -477,7 +475,7 @@
      * @param end
      * @return
      */
-    public Set<ZSetOperations.TypedTuple<String>> zRangeWithScore(String key, int start, int end) {
+    public Set<ZSetOperations.TypedTuple<String>> zRangeWithScore(Object key, int start, int end) {
         return redisTemplate.opsForZSet().rangeWithScores(key, start, end);
     }
     /**
@@ -490,7 +488,7 @@
      * @param end
      * @return
      */
-    public Set<String> zRevRange(String key, int start, int end) {
+    public Set<String> zRevRange(Object key, int start, int end) {
         return redisTemplate.opsForZSet().reverseRange(key, start, end);
     }
     /**
@@ -501,7 +499,7 @@
      * @param max
      * @return
      */
-    public Set<String> zSortRange(String key, int min, int max) {
+    public Set<String> zSortRange(Object key, int min, int max) {
         return redisTemplate.opsForZSet().rangeByScore(key, min, max);
     }
 
@@ -661,7 +659,25 @@
             return 0;
         }
     }
-    
+
+    /**
+     * 鍦ㄩ敭涓� key 鐨� list涓Щ闄ょ涓�涓厓绱�
+     * @param key 閿�
+     * @return
+     */
+    public Object lLeftPop(String key) {
+        return redisTemplate.opsForList().leftPop(key);
+    }
+
+    /**
+     * 鍦ㄩ敭涓� key 鐨� list涓Щ闄ゃ�佹渶鍚庝竴涓厓绱�
+     * @param key 閿�
+     * @return
+     */
+    public Object lrightPop(String key) {
+        return redisTemplate.opsForList().rightPop(key);
+    }
+
     /**
      * 妯$硦鏌ヨ
      * @param key 閿�
@@ -669,11 +685,74 @@
      */
     public List<Object> keys(String key) {
         try {
-        	Set<String> set = redisTemplate.keys(key);
+            Set<String> set = redisTemplate.keys(key);
             return new ArrayList<>(set);
         } catch (Exception e) {
             e.printStackTrace();
             return null;
         }
     }
+
+
+    /**
+     * 妯$硦鏌ヨ
+     * @param query 鏌ヨ鍙傛暟
+     * @return
+     */
+//    public List<Object> scan(String query) {
+//        List<Object> result = new ArrayList<>();
+//        try {
+//            Cursor<Map.Entry<Object,Object>> cursor = redisTemplate.opsForHash().scan("field",
+//                    ScanOptions.scanOptions().match(query).count(1000).build());
+//            while (cursor.hasNext()) {
+//                Map.Entry<Object,Object> entry = cursor.next();
+//                result.add(entry.getKey());
+//                Object key = entry.getKey();
+//                Object valueSet = entry.getValue();
+//            }
+//            //鍏抽棴cursor
+//            cursor.close();
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        }
+//        return result;
+//    }
+
+    /**
+     * 妯$硦鏌ヨ
+     * @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()));
+            }
+            return keysTmp;
+        });
+//        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<>(keys);
+    }
+
+    //    ============================== 娑堟伅鍙戦�佷笌璁㈤槄 ==============================
+    public void convertAndSend(String channel, JSONObject msg) {
+//        redisTemplate.convertAndSend(channel, msg);
+        redisTemplate.convertAndSend(channel, msg);
+
+    }
+
 }

--
Gitblit v1.8.0