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);
|
}
|
}
|