package com.oying.config; import cn.hutool.core.util.StrUtil; import lombok.Data; import org.redisson.Redisson; import org.redisson.api.RedissonClient; import org.redisson.config.Config; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Data @Configuration @AutoConfigureBefore(RedisAutoConfiguration.class) public class RedissonConfiguration { @Value("${spring.redis.host}") private String redisHost; @Value("${spring.redis.port}") private int redisPort; @Value("${spring.redis.database}") private int redisDatabase; @Value("${spring.redis.password:}") private String redisPassword; @Value("${spring.redis.timeout:5000}") private int timeout; @Value("${spring.redis.lettuce.pool.max-active:64}") private int connectionPoolSize; @Value("${spring.redis.lettuce.pool.min-idle:16}") private int connectionMinimumIdleSize; @Bean public RedissonClient redissonClient() { Config config = new Config(); config.useSingleServer() .setAddress("redis://" + redisHost + ":" + redisPort) .setDatabase(redisDatabase) .setTimeout(timeout) .setConnectionPoolSize(connectionPoolSize) .setConnectionMinimumIdleSize(connectionMinimumIdleSize); if(StrUtil.isNotBlank(redisPassword)){ config.useSingleServer().setPassword(redisPassword); } return Redisson.create(config); } }