From 0cb04c87999fd93212beb643d3ad65248c6df888 Mon Sep 17 00:00:00 2001 From: DongZeLiang <2746733890@qq.com> Date: Mon, 1 Apr 2024 11:30:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E7=A9=BA=E5=80=BC?= =?UTF-8?q?=E7=9A=84=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../muyu/common/cache/abs/HashCacheAbs.java | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/muyu-common/muyu-common-cache/src/main/java/com/muyu/common/cache/abs/HashCacheAbs.java b/muyu-common/muyu-common-cache/src/main/java/com/muyu/common/cache/abs/HashCacheAbs.java index f1e3797..bef0214 100644 --- a/muyu-common/muyu-common-cache/src/main/java/com/muyu/common/cache/abs/HashCacheAbs.java +++ b/muyu-common/muyu-common-cache/src/main/java/com/muyu/common/cache/abs/HashCacheAbs.java @@ -47,8 +47,17 @@ public abstract class HashCacheAbs implements HashCache { @Override public Map get (K key) { // 获取为null的情况 - - return decodeMap(redisService.getCacheMap(encode(key))); + Map cacheMap = redisService.getCacheMap(encode(key)); + if (cacheMap == null || cacheMap.isEmpty()){ + Map dataMap = getData(key); + if (dataMap != null && !dataMap.isEmpty()){ + cacheMap = encodeMap(dataMap); + }else { + cacheMap = encodeMap(defaultValue()); + } + redisService.setCacheMap(encode(key), cacheMap); + } + return decodeMap(cacheMap); } /** @@ -61,7 +70,13 @@ public abstract class HashCacheAbs implements HashCache { */ @Override public HV get (K key, HK hashKey) { - return redisService.getCacheMapValue(encode(key), encodeHashKey(hashKey)); + HV hashValue = redisService.getCacheMapValue(encode(key), encodeHashKey(hashKey)); + if (hashValue == null){ + HV dataValue = getData(key, hashKey); + hashValue = dataValue != null ? dataValue : defaultHashValue(); + put(key, hashKey, hashValue); + } + return hashValue; } /**