From ce7536df9f82833044c9cbc479f0de42de2beffe Mon Sep 17 00:00:00 2001
From: 抓蛙师 <770492966@qq.com>
Date: 星期四, 14 七月 2022 19:15:17 +0800
Subject: [PATCH] !201 redission处理增加前缀 * redission处理判断无前缀则不处理 * redission处理增加前缀

---
 ruoyi-framework/src/main/java/com/ruoyi/framework/handler/KeyPrefixHandler.java             |   50 +++++++++++++++++++++++++
 ruoyi-admin/src/main/resources/application-prod.yml                                         |    2 +
 ruoyi-framework/src/main/java/com/ruoyi/framework/config/RedisConfig.java                   |    3 +
 ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/RedissonProperties.java |    7 +++
 ruoyi-admin/src/main/resources/application-dev.yml                                          |    2 +
 5 files changed, 63 insertions(+), 1 deletions(-)

diff --git a/ruoyi-admin/src/main/resources/application-dev.yml b/ruoyi-admin/src/main/resources/application-dev.yml
index f9327f7..88bc3a6 100644
--- a/ruoyi-admin/src/main/resources/application-dev.yml
+++ b/ruoyi-admin/src/main/resources/application-dev.yml
@@ -138,6 +138,8 @@
     ssl: false
 
 redisson:
+  # redis key鍓嶇紑
+  keyPrefix:
   # 绾跨▼姹犳暟閲�
   threads: 4
   # Netty绾跨▼姹犳暟閲�
diff --git a/ruoyi-admin/src/main/resources/application-prod.yml b/ruoyi-admin/src/main/resources/application-prod.yml
index a42f4ad..0987874 100644
--- a/ruoyi-admin/src/main/resources/application-prod.yml
+++ b/ruoyi-admin/src/main/resources/application-prod.yml
@@ -141,6 +141,8 @@
     ssl: false
 
 redisson:
+  # redis key鍓嶇紑
+  keyPrefix:
   # 绾跨▼姹犳暟閲�
   threads: 16
   # Netty绾跨▼姹犳暟閲�
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/RedisConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/RedisConfig.java
index 38a8718..30fff16 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/RedisConfig.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/RedisConfig.java
@@ -3,6 +3,7 @@
 import cn.hutool.core.util.ObjectUtil;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.ruoyi.framework.config.properties.RedissonProperties;
+import com.ruoyi.framework.handler.KeyPrefixHandler;
 import lombok.extern.slf4j.Slf4j;
 import org.redisson.api.RedissonClient;
 import org.redisson.codec.JsonJacksonCodec;
@@ -48,6 +49,7 @@
             if (ObjectUtil.isNotNull(singleServerConfig)) {
                 // 浣跨敤鍗曟満妯″紡
                 config.useSingleServer()
+                     .setNameMapper(new KeyPrefixHandler(redissonProperties.getKeyPrefix()))//璁剧疆redis key鍓嶇紑
                     .setTimeout(singleServerConfig.getTimeout())
                     .setClientName(singleServerConfig.getClientName())
                     .setIdleConnectionTimeout(singleServerConfig.getIdleConnectionTimeout())
@@ -59,6 +61,7 @@
             RedissonProperties.ClusterServersConfig clusterServersConfig = redissonProperties.getClusterServersConfig();
             if (ObjectUtil.isNotNull(clusterServersConfig)) {
                 config.useClusterServers()
+                     .setNameMapper(new KeyPrefixHandler(redissonProperties.getKeyPrefix()))//璁剧疆redis key鍓嶇紑
                     .setTimeout(clusterServersConfig.getTimeout())
                     .setClientName(clusterServersConfig.getClientName())
                     .setIdleConnectionTimeout(clusterServersConfig.getIdleConnectionTimeout())
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/RedissonProperties.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/RedissonProperties.java
index cd320eb..eab746c 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/RedissonProperties.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/RedissonProperties.java
@@ -18,7 +18,12 @@
 @Component
 @ConfigurationProperties(prefix = "redisson")
 public class RedissonProperties {
-
+    
+    /**
+     * redis缂撳瓨key鍓嶇紑
+     */
+    private String keyPrefix;
+    
     /**
      * 绾跨▼姹犳暟閲�,榛樿鍊� = 褰撳墠澶勭悊鏍告暟閲� * 2
      */
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/KeyPrefixHandler.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/KeyPrefixHandler.java
new file mode 100644
index 0000000..ddfa064
--- /dev/null
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/KeyPrefixHandler.java
@@ -0,0 +1,50 @@
+package com.ruoyi.framework.handler;
+
+import com.ruoyi.common.utils.StringUtils;
+import org.redisson.api.NameMapper;
+
+/*
+ * redis缂撳瓨key鍓嶇紑澶勭悊
+ * @author ye
+ * @create 2022/7/14 17:44
+ */
+public class KeyPrefixHandler implements NameMapper {
+  
+  private final String keyPrefix;
+  
+  //鍓嶇紑涓虹┖ 鍒欒繑鍥炵┖鍓嶇紑
+  public KeyPrefixHandler(String keyPrefix) {
+    this.keyPrefix = StringUtils.isBlank(keyPrefix) ? "" : keyPrefix + ":";
+  }
+  
+  //澧炲姞鍓嶇紑
+  @Override
+  public String map(String name) {
+    if (StringUtils.isBlank(name)) {
+      return null;
+    }
+    if (StringUtils.isBlank(keyPrefix)) {
+      return name;
+    }
+    if (!name.startsWith(keyPrefix)) {
+      return keyPrefix + name;
+    } else {
+      return name;
+    }
+  }
+  
+  //鍘婚櫎鍓嶇紑
+  @Override
+  public String unmap(String name) {
+    if (StringUtils.isBlank(name)) {
+      return null;
+    }
+    if (StringUtils.isBlank(keyPrefix)) {
+      return name;
+    }
+    if (name.startsWith(keyPrefix)) {
+      return name.substring(keyPrefix.length());
+    }
+    return name;
+  }
+}

--
Gitblit v1.9.3