!201 redission处理增加前缀
* redission处理判断无前缀则不处理
* redission处理增加前缀
已添加1个文件
已修改4个文件
64 ■■■■■ 文件已修改
ruoyi-admin/src/main/resources/application-dev.yml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/application-prod.yml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-framework/src/main/java/com/ruoyi/framework/config/RedisConfig.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/RedissonProperties.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-framework/src/main/java/com/ruoyi/framework/handler/KeyPrefixHandler.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/application-dev.yml
@@ -138,6 +138,8 @@
    ssl: false
redisson:
  # redis key前缀
  keyPrefix:
  # çº¿ç¨‹æ± æ•°é‡
  threads: 4
  # Netty线程池数量
ruoyi-admin/src/main/resources/application-prod.yml
@@ -141,6 +141,8 @@
    ssl: false
redisson:
  # redis key前缀
  keyPrefix:
  # çº¿ç¨‹æ± æ•°é‡
  threads: 16
  # Netty线程池数量
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())
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
     */
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;
  }
}