ruoyi-admin/src/main/resources/application-dev.yml
@@ -70,7 +70,7 @@ config: multi-statement-allow: true --- # redis 配置 --- # redis 单机配置(单机与集群只能开启一个另一个需要注释掉) spring: redis: # 地址 @@ -118,6 +118,67 @@ # DNS监测时间间隔,单位:毫秒 dnsMonitoringInterval: 5000 #--- # redis 集群配置(单机与集群只能开启一个另一个需要注释掉) #spring: # redis: # cluster: # nodes: # - 192.168.0.100:6379 # - 192.168.0.101:6379 # - 192.168.0.102:6379 # # 密码 # password: # # 连接超时时间 # timeout: 10s # # 是否开启ssl # ssl: false # #redisson: # # 线程池数量 # threads: 16 # # Netty线程池数量 # nettyThreads: 32 # # 传输模式 # transportMode: "NIO" # # 集群配置 # clusterServersConfig: # # 客户端名称 # clientName: ${ruoyi.name} # # master最小空闲连接数 # masterConnectionMinimumIdleSize: 32 # # master连接池大小 # masterConnectionPoolSize: 64 # # slave最小空闲连接数 # slaveConnectionMinimumIdleSize: 32 # # slave连接池大小 # slaveConnectionPoolSize: 64 # # 连接空闲超时,单位:毫秒 # idleConnectionTimeout: 10000 # # ping连接间隔 # pingConnectionInterval: 1000 # # 命令等待超时,单位:毫秒 # timeout: 3000 # # 如果尝试在此限制之内发送成功,则开始启用 timeout 计时。 # retryAttempts: 3 # # 命令重试发送时间间隔,单位:毫秒 # retryInterval: 1500 # # 从可用服务器的内部列表中排除 Redis Slave 重新连接尝试的间隔。 # failedSlaveReconnectionInterval: 3000 # # 发布和订阅连接池最小空闲连接数 # subscriptionConnectionMinimumIdleSize: 1 # # 发布和订阅连接池大小 # subscriptionConnectionPoolSize: 50 # # 单个连接最大订阅数量 # subscriptionsPerConnection: 5 # # 扫描间隔 # scanInterval: 1000 # # DNS监测时间间隔,单位:毫秒 # dnsMonitoringInterval: 5000 # # 读取模式 # readMode: "SLAVE" # # 订阅模式 # subscriptionMode: "MASTER" --- # 监控配置 spring: boot: ruoyi-admin/src/main/resources/application-prod.yml
@@ -70,7 +70,7 @@ config: multi-statement-allow: true --- # redis 配置 --- # redis 单机配置(单机与集群只能开启一个另一个需要注释掉) spring: redis: # 地址 @@ -118,6 +118,67 @@ # DNS监测时间间隔,单位:毫秒 dnsMonitoringInterval: 5000 #--- # redis 集群配置(单机与集群只能开启一个另一个需要注释掉) #spring: # redis: # cluster: # nodes: # - 192.168.0.100:6379 # - 192.168.0.101:6379 # - 192.168.0.102:6379 # # 密码 # password: # # 连接超时时间 # timeout: 10s # # 是否开启ssl # ssl: false # #redisson: # # 线程池数量 # threads: 16 # # Netty线程池数量 # nettyThreads: 32 # # 传输模式 # transportMode: "NIO" # # 集群配置 # clusterServersConfig: # # 客户端名称 # clientName: ${ruoyi.name} # # master最小空闲连接数 # masterConnectionMinimumIdleSize: 32 # # master连接池大小 # masterConnectionPoolSize: 64 # # slave最小空闲连接数 # slaveConnectionMinimumIdleSize: 32 # # slave连接池大小 # slaveConnectionPoolSize: 64 # # 连接空闲超时,单位:毫秒 # idleConnectionTimeout: 10000 # # ping连接间隔 # pingConnectionInterval: 1000 # # 命令等待超时,单位:毫秒 # timeout: 3000 # # 如果尝试在此限制之内发送成功,则开始启用 timeout 计时。 # retryAttempts: 3 # # 命令重试发送时间间隔,单位:毫秒 # retryInterval: 1500 # # 从可用服务器的内部列表中排除 Redis Slave 重新连接尝试的间隔。 # failedSlaveReconnectionInterval: 3000 # # 发布和订阅连接池最小空闲连接数 # subscriptionConnectionMinimumIdleSize: 1 # # 发布和订阅连接池大小 # subscriptionConnectionPoolSize: 50 # # 单个连接最大订阅数量 # subscriptionsPerConnection: 5 # # 扫描间隔 # scanInterval: 1000 # # DNS监测时间间隔,单位:毫秒 # dnsMonitoringInterval: 5000 # # 读取模式 # readMode: "SLAVE" # # 订阅模式 # subscriptionMode: "MASTER" --- # 监控配置 spring: boot: ruoyi-framework/src/main/java/com/ruoyi/framework/config/RedisConfig.java
@@ -1,5 +1,6 @@ package com.ruoyi.framework.config; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.framework.config.properties.RedissonProperties; @@ -58,23 +59,52 @@ .setTransportMode(redissonProperties.getTransportMode()); RedissonProperties.SingleServerConfig singleServerConfig = redissonProperties.getSingleServerConfig(); // 使用单机模式 config.useSingleServer() .setAddress(prefix + redisProperties.getHost() + ":" + redisProperties.getPort()) .setConnectTimeout(((Long) redisProperties.getTimeout().toMillis()).intValue()) .setDatabase(redisProperties.getDatabase()) .setPassword(StringUtils.isNotBlank(redisProperties.getPassword()) ? redisProperties.getPassword() : null) .setTimeout(singleServerConfig.getTimeout()) .setRetryAttempts(singleServerConfig.getRetryAttempts()) .setRetryInterval(singleServerConfig.getRetryInterval()) .setSubscriptionsPerConnection(singleServerConfig.getSubscriptionsPerConnection()) .setClientName(singleServerConfig.getClientName()) .setIdleConnectionTimeout(singleServerConfig.getIdleConnectionTimeout()) .setSubscriptionConnectionMinimumIdleSize(singleServerConfig.getSubscriptionConnectionMinimumIdleSize()) .setSubscriptionConnectionPoolSize(singleServerConfig.getSubscriptionConnectionPoolSize()) .setConnectionMinimumIdleSize(singleServerConfig.getConnectionMinimumIdleSize()) .setConnectionPoolSize(singleServerConfig.getConnectionPoolSize()) .setDnsMonitoringInterval(singleServerConfig.getDnsMonitoringInterval()); if (ObjectUtil.isNotNull(singleServerConfig)) { // 使用单机模式 config.useSingleServer() .setAddress(prefix + redisProperties.getHost() + ":" + redisProperties.getPort()) .setConnectTimeout(((Long) redisProperties.getTimeout().toMillis()).intValue()) .setDatabase(redisProperties.getDatabase()) .setPassword(StringUtils.isNotBlank(redisProperties.getPassword()) ? redisProperties.getPassword() : null) .setTimeout(singleServerConfig.getTimeout()) .setRetryAttempts(singleServerConfig.getRetryAttempts()) .setRetryInterval(singleServerConfig.getRetryInterval()) .setSubscriptionsPerConnection(singleServerConfig.getSubscriptionsPerConnection()) .setClientName(singleServerConfig.getClientName()) .setIdleConnectionTimeout(singleServerConfig.getIdleConnectionTimeout()) .setSubscriptionConnectionMinimumIdleSize(singleServerConfig.getSubscriptionConnectionMinimumIdleSize()) .setSubscriptionConnectionPoolSize(singleServerConfig.getSubscriptionConnectionPoolSize()) .setConnectionMinimumIdleSize(singleServerConfig.getConnectionMinimumIdleSize()) .setConnectionPoolSize(singleServerConfig.getConnectionPoolSize()) .setDnsMonitoringInterval(singleServerConfig.getDnsMonitoringInterval()); } RedissonProperties.ClusterServersConfig clusterServersConfig = redissonProperties.getClusterServersConfig(); if (ObjectUtil.isNotNull(clusterServersConfig)) { // 使用集群模式 config.useClusterServers() .setConnectTimeout(((Long) redisProperties.getTimeout().toMillis()).intValue()) .setPassword(StringUtils.isNotBlank(redisProperties.getPassword()) ? redisProperties.getPassword() : null) .setTimeout(clusterServersConfig.getTimeout()) .setRetryAttempts(clusterServersConfig.getRetryAttempts()) .setRetryInterval(clusterServersConfig.getRetryInterval()) .setSubscriptionsPerConnection(clusterServersConfig.getSubscriptionsPerConnection()) .setClientName(clusterServersConfig.getClientName()) .setIdleConnectionTimeout(clusterServersConfig.getIdleConnectionTimeout()) .setPingConnectionInterval(clusterServersConfig.getPingConnectionInterval()) .setSubscriptionConnectionMinimumIdleSize(clusterServersConfig.getSubscriptionConnectionMinimumIdleSize()) .setSubscriptionConnectionPoolSize(clusterServersConfig.getSubscriptionConnectionPoolSize()) .setMasterConnectionMinimumIdleSize(clusterServersConfig.getMasterConnectionMinimumIdleSize()) .setMasterConnectionPoolSize(clusterServersConfig.getMasterConnectionPoolSize()) .setSlaveConnectionMinimumIdleSize(clusterServersConfig.getSlaveConnectionMinimumIdleSize()) .setSlaveConnectionPoolSize(clusterServersConfig.getSlaveConnectionPoolSize()) .setDnsMonitoringInterval(clusterServersConfig.getDnsMonitoringInterval()) .setFailedSlaveReconnectionInterval(clusterServersConfig.getFailedSlaveReconnectionInterval()) .setScanInterval(clusterServersConfig.getScanInterval()) .setReadMode(clusterServersConfig.getReadMode()) .setSubscriptionMode(clusterServersConfig.getSubscriptionMode()) .setNodeAddresses(redisProperties.getCluster().getNodes()); } RedissonClient redissonClient = Redisson.create(config); log.info("初始化 redis 配置"); return redissonClient; ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/RedissonProperties.java
@@ -2,6 +2,8 @@ import lombok.Data; import lombok.NoArgsConstructor; import org.redisson.config.ReadMode; import org.redisson.config.SubscriptionMode; import org.redisson.config.TransportMode; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; @@ -37,6 +39,11 @@ * 单机服务配置 */ private SingleServerConfig singleServerConfig; /** * 集群服务配置 */ private ClusterServersConfig clusterServersConfig; /** * 缓存组 @@ -106,6 +113,102 @@ @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; /** * ping超时 */ private int pingConnectionInterval; /** * 命令等待超时,单位:毫秒 */ private int timeout; /** * 如果尝试在此限制之内发送成功,则开始启用 timeout 计时。 */ private int retryAttempts; /** * 命令重试发送时间间隔,单位:毫秒 */ private int retryInterval; /** * 错误重试次数 */ private int failedSlaveReconnectionInterval; /** * 发布和订阅连接池最小空闲连接数 */ private int subscriptionConnectionMinimumIdleSize; /** * 发布和订阅连接池大小 */ private int subscriptionConnectionPoolSize; /** * 单个连接最大订阅数量 */ private int subscriptionsPerConnection; /** * 扫描间隔 */ private int scanInterval; /** * DNS监测时间间隔,单位:毫秒 */ private int dnsMonitoringInterval; /** * 读取模式 */ private ReadMode readMode; /** * 订阅模式 */ private SubscriptionMode subscriptionMode; } @Data @NoArgsConstructor public static class CacheGroup { /**