From b89e6988fed3fe7b4dd3164937382b882cb61bff Mon Sep 17 00:00:00 2001 From: lvxinran Date: Tue, 1 Dec 2020 10:24:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E5=85=B7=E7=B1=BB=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/global/redis/RedisKey.java | 2 + .../main/java/com/global/redis/RedisUtil.java | 92 +++++++++++++++++++ 2 files changed, 94 insertions(+) diff --git a/globalidserver/src/main/java/com/global/redis/RedisKey.java b/globalidserver/src/main/java/com/global/redis/RedisKey.java index 2d4ccdb5b..46cad66bf 100644 --- a/globalidserver/src/main/java/com/global/redis/RedisKey.java +++ b/globalidserver/src/main/java/com/global/redis/RedisKey.java @@ -13,4 +13,6 @@ public class RedisKey { public static final String MATCH_SERVER_INFO = "MATCH_SERVER_INFO"; //匹配服务器地址信息 public static final String MATCH_SIZE = "MATCH_SIZE"; //匹配人数设置 + public static final String MATCHED_SPLIT_KEY = "MATCHED_SPLIT_KEY"; + } diff --git a/globalidserver/src/main/java/com/global/redis/RedisUtil.java b/globalidserver/src/main/java/com/global/redis/RedisUtil.java index 345798247..00516c289 100644 --- a/globalidserver/src/main/java/com/global/redis/RedisUtil.java +++ b/globalidserver/src/main/java/com/global/redis/RedisUtil.java @@ -157,5 +157,97 @@ public class RedisUtil { } } + /** + * 普通缓存放入并设置时间 + * + * @param key + * 键 + * @param value + * 值 + * @param time + * 时间(秒) time要大于0 如果time小于等于0 将设置无限期 + * @return true成功 false 失败 + */ + public boolean set(String key, String value, long time) { + try { + if (time > 0) { + redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS); + } else { + set(key, value); + } + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + //操作sortset + public void zsetAddOne(String key, String uid, double useTime){ + for (int i = 0; i < MAX_TRY_TIMES; i++) { + try { + redisTemplate.opsForZSet().add(key, uid, useTime); + return; + } catch (Exception e) { + TimeUtils.sleep(FAILED_SLEEP); + } + } + } + //操作sortset + public Set> getZsetRevRangeWithScore(String key, double min, double max){ + for (int i = 0; i < MAX_TRY_TIMES; i++) { + try { + return redisTemplate.opsForZSet().reverseRangeByScoreWithScores(key,min,max); + } catch (Exception e) { + TimeUtils.sleep(FAILED_SLEEP); + } + } + return null; + } + + public void putMapEntrys(String type, Map valus){ + Map result = new HashMap<>(); + valus.forEach((k,v)->{ + result.put(k,gson.toJson(v)); + }); + for (int i = 0; i < MAX_TRY_TIMES; i++) { + try { + redisTemplate.opsForHash().putAll(type,result); + return; + } catch (Exception e) { + TimeUtils.sleep(FAILED_SLEEP); + } + } + } + public List getMapEntrys(String type,Collection mapKeys, Class valueClazz){ + List result = new ArrayList<>(); + for (int i = 0; i < MAX_TRY_TIMES; i++) { + try { + List objects = redisTemplate.opsForHash().multiGet(type, mapKeys); + if(objects!=null &&!objects.isEmpty()){ + for(Object o : objects){ + if(o!=null){ + result.add(gson.fromJson(o.toString(),valueClazz)); + } + } + return result; + } + } catch (Exception e) { + TimeUtils.sleep(FAILED_SLEEP); + } + } + return result; + } + public Map getMapValues(String type,Class keyClazz,Class valueClazz){ + Map result = new HashMap<>(); + Map entries = redisTemplate.opsForHash().entries(type); + for(Map.Entry item : entries.entrySet()){ + Object key1 = item.getKey(); + Object value = item.getValue(); + result.put(gson.fromJson(gson.toJson(key1),keyClazz),gson.fromJson(value.toString(),valueClazz)); + } + return result; + } + }