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