content: package org.ruoyi.common.redis.config.properties;
  
  import lombok.Data;
  import lombok.NoArgsConstructor;
  import org.redisson.config.ReadMode;
  import org.redisson.config.SubscriptionMode;
  import org.springframework.boot.context.properties.ConfigurationProperties;
  
  /**
   * Redisson 配置属性
   *
   * @author Lion Li
   */
  @Data
  @ConfigurationProperties(prefix = "redisson")
  public class RedissonProperties {
  
      /**
       * redis缓存key前缀
       */
      private String keyPrefix;
  
      /**
       * 线程池数量,默认值 = 当前处理核数量 * 2
       */
      private int threads;
  
      /**
       * Netty线程池数量,默认值 = 当前处理核数量 * 2
       */
      private int nettyThreads;
  
      /**
       * 单机服务配置
       */
      private SingleServerConfig singleServerConfig;
  
      /**
       * 集群服务配置
       */
      private ClusterServersConfig clusterServersConfig;
  
      @Data
      @NoArgsConstructor
      public static class SingleServerConfig {
  
          /**
           * 客户端名称
           */
          private String clientName;
  
          /**
           * 最小空闲连接数
           */
          private int connectionMinimumIdleSize;
  
          /**
           * 连接池大小
           */
          private int connectionPoolSize;
  
          /**
           * 连接空闲超时，单位：毫秒
           */
          private int idleConnectionTimeout;
  
          /**
           * 命令等待超时，单位：毫秒
           */
          private int timeout;
  
          /**
           * 发布和订阅连接池大小
           */
          private int subscriptionConnectionPoolSize;
  
      }
  
      @Data
      @NoArgsConstructor
      public static class ClusterServersConfig {
  
          /**
           * 客户端名称
           */
          private String clientName;
  
          /**
           * 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;
  
      }
  
  }
  