疯狂的狮子li
2022-04-22 70c1a37bbd95bd3850d23c902fbe82aaf835adae
ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/RedissonProperties.java
@@ -2,10 +2,12 @@
import lombok.Data;
import lombok.NoArgsConstructor;
import org.redisson.client.codec.Codec;
import org.redisson.config.TransportMode;
import org.redisson.config.ReadMode;
import org.redisson.config.SubscriptionMode;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.List;
/**
 * Redisson 配置属性
@@ -17,85 +19,147 @@
@ConfigurationProperties(prefix = "redisson")
public class RedissonProperties {
   /**
    * 线程池数量,默认值 = 当前处理核数量 * 2
    */
   private int threads;
    /**
     * 线程池数量,默认值 = 当前处理核数量 * 2
     */
    private int threads;
   /**
    * Netty线程池数量,默认值 = 当前处理核数量 * 2
    */
   private int nettyThreads;
    /**
     * Netty线程池数量,默认值 = 当前处理核数量 * 2
     */
    private int nettyThreads;
   /**
    * 传输模式
    */
   private TransportMode transportMode;
    /**
     * 单机服务配置
     */
    private SingleServerConfig singleServerConfig;
   /**
    * 单机服务配置
    */
   private SingleServerConfig singleServerConfig;
    /**
     * 集群服务配置
     */
    private ClusterServersConfig clusterServersConfig;
   @Data
   @NoArgsConstructor
   public static class SingleServerConfig {
    /**
     * 缓存组
     */
    private List<CacheGroup> cacheGroup;
      /**
       * 客户端名称
       */
      private String clientName;
    @Data
    @NoArgsConstructor
    public static class SingleServerConfig {
      /**
       * 最小空闲连接数
       */
      private int connectionMinimumIdleSize;
        /**
         * 客户端名称
         */
        private String clientName;
      /**
       * 连接池大小
       */
      private int connectionPoolSize;
        /**
         * 最小空闲连接数
         */
        private int connectionMinimumIdleSize;
      /**
       * 连接空闲超时,单位:毫秒
       */
      private int idleConnectionTimeout;
        /**
         * 连接池大小
         */
        private int connectionPoolSize;
      /**
       * 命令等待超时,单位:毫秒
       */
      private int timeout;
        /**
         * 连接空闲超时,单位:毫秒
         */
        private int idleConnectionTimeout;
      /**
       * 如果尝试在此限制之内发送成功,则开始启用 timeout 计时。
       */
      private int retryAttempts;
        /**
         * 命令等待超时,单位:毫秒
         */
        private int timeout;
      /**
       * 命令重试发送时间间隔,单位:毫秒
       */
      private int retryInterval;
        /**
         * 发布和订阅连接池大小
         */
        private int subscriptionConnectionPoolSize;
      /**
       * 发布和订阅连接的最小空闲连接数
       */
      private int subscriptionConnectionMinimumIdleSize;
    }
      /**
       * 发布和订阅连接池大小
       */
      private int subscriptionConnectionPoolSize;
    @Data
    @NoArgsConstructor
    public static class ClusterServersConfig {
      /**
       * 单个连接最大订阅数量
       */
      private int subscriptionsPerConnection;
        /**
         * 客户端名称
         */
        private String clientName;
      /**
       * DNS监测时间间隔,单位:毫秒
       */
      private int dnsMonitoringInterval;
        /**
         * master最小空闲连接数
         */
        private int masterConnectionMinimumIdleSize;
   }
        /**
         * master连接池大小
         */
        private int masterConnectionPoolSize;
        /**
         * slave最小空闲连接数
         */
        private int slaveConnectionMinimumIdleSize;
        /**
         * slave连接池大小
         */
        private int slaveConnectionPoolSize;
        /**
         * 连接空闲超时,单位:毫秒
         */
        private int idleConnectionTimeout;
        /**
         * 命令等待超时,单位:毫秒
         */
        private int timeout;
        /**
         * 发布和订阅连接池大小
         */
        private int subscriptionConnectionPoolSize;
        /**
         * 读取模式
         */
        private ReadMode readMode;
        /**
         * 订阅模式
         */
        private SubscriptionMode subscriptionMode;
    }
    @Data
    @NoArgsConstructor
    public static class CacheGroup {
        /**
         * 组id
         */
        private String groupId;
        /**
         * 组过期时间
         */
        private long ttl;
        /**
         * 组最大空闲时间
         */
        private long maxIdleTime;
        /**
         * 组最大长度
         */
        private int maxSize;
    }
}