Browse Source

缓存解析

zhoutg 3 years ago
parent
commit
979eb4a636

+ 3 - 1
src/main/java/com/diagbot/config/CacheDeleteInit.java

@@ -66,8 +66,10 @@ public class CacheDeleteInit implements CommandLineRunner {
         cacheFacade.loadAllBaseDiagnoseCache();
         log.info("CDSS-CORE服务启动加载诊断依据缓存成功!");
 
+        long t1 = System.currentTimeMillis();
         cacheFacade.loadAllRuleCache();
-        log.info("CDSS-CORE服务启动加载医学知识库中的所有规则缓存成功!");
+        long t2 = System.currentTimeMillis();
+        log.info("CDSS-CORE服务启动加载医学知识库中的所有规则缓存成功!耗时:" + (t2 - t1)/ 1000.0 + "秒");
 
         log.info("CDSS-CORE初始化完成!");
     }

+ 14 - 0
src/main/java/com/diagbot/facade/CacheFacade.java

@@ -13,6 +13,7 @@ import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.RedisUtil;
 import com.diagbot.util.StringUtil;
+import com.diagbot.vo.DecodeRedisVO;
 import com.google.common.collect.Lists;
 import org.apache.commons.collections4.map.LinkedMap;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -82,6 +83,19 @@ public class CacheFacade {
         neoFacade.getDrugCache();
     }
 
+
+    /**
+     * redis缓存反解
+     *
+     * @return
+     */
+    public Object decodeRedis(DecodeRedisVO decodeRedisVO) {
+        if (StringUtil.isNotBlank(decodeRedisVO.getKey()) && StringUtil.isNotBlank(decodeRedisVO.getField())) {
+            return redisUtil.getByKeyAndField(decodeRedisVO.getKey(), decodeRedisVO.getField());
+        }
+        return redisUtil.get(decodeRedisVO.getKey());
+    }
+
     /**
      * 加载数据库中症状特征缓存
      *

+ 19 - 0
src/main/java/com/diagbot/vo/DecodeRedisVO.java

@@ -0,0 +1,19 @@
+package com.diagbot.vo;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * @Description:
+ * @Author: zhoutg
+ * @time: 2020/9/7 20:09
+ */
+@Data
+public class DecodeRedisVO {
+
+    @NotBlank(message = "key不能为空")
+    private String key;
+    // 指定属性
+    private String field;
+}

+ 17 - 0
src/main/java/com/diagbot/web/CacheController.java

@@ -4,14 +4,19 @@ import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.facade.CacheFacade;
 import com.diagbot.facade.ConceptInfoFacade;
+import com.diagbot.util.RedisUtil;
+import com.diagbot.vo.DecodeRedisVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.validation.Valid;
+
 /**
  * <p>
  * 缓存 前端控制器
@@ -31,6 +36,8 @@ public class CacheController {
     CacheFacade cacheFacade;
     @Autowired
     private ConceptInfoFacade conceptInfoFacade;
+    @Autowired
+    RedisUtil redisUtil;
 
     @ApiOperation(value = "清除启动加载类缓存[by:zhoutg]",
             notes = "")
@@ -53,6 +60,16 @@ public class CacheController {
         return RespDTO.onSuc(true);
     }
 
+    @ApiOperation(value = "redis缓存反解[by:zhoutg]",
+            notes = "key:缓存key<br>" +
+                    "field:指定属性")
+    @PostMapping("/decodeRedis")
+    @SysLogger("decodeRedis")
+    public RespDTO<Object> decodeRedis(@RequestBody @Valid DecodeRedisVO decodeRedisVO) {
+        Object data = cacheFacade.decodeRedis(decodeRedisVO);
+        return RespDTO.onSuc(data);
+    }
+
     @ApiOperation(value = "重新加载基础诊断依据[by:zhoutg]",
             notes = "")
     @PostMapping("/reloadDiagnose")