Pom 配置
在 pom.xml 加入组件依赖,引入 spring-boot-starter-data-redis 基础组件,排除其默认集成的 Lettuce 客户端,同时引入 redisson-spring-boot-starter 的3.24.3 版本,使 Redisson 成为 Spring 生态中操作 Redis 的唯一客户端。
<!-- 引入spring-data-redis组件 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId><exclusions><!-- 因springboot2.x中默认集成了lettuce,因此需要排掉该依赖 --><exclusion><artifactId>lettuce-core</artifactId><groupId>io.lettuce</groupId></exclusion></exclusions></dependency><!-- 引入redisson对springboot的集成适配包 --><dependency><groupId>org.redisson</groupId><artifactId>redisson-spring-boot-starter</artifactId><version>3.24.3</version></dependency>
代码配置
如下代码,连接参数已配置为推荐值。
import org.redisson.Redisson;import org.redisson.api.RedissonClient;import org.redisson.codec.JsonJacksonCodec;import org.redisson.config.Config;import org.redisson.config.SingleServerConfig;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;@Configurationpublic class SingleConfig {@Value("${tencent.redis.address:}")private String redisAddress;@Value("${tencent.redis.password:}")private String redisPassword;@Value("${tencent.redis.database:0}")private Integer redisDatabase = 0;@Value("${tencent.redis.connect.timeout:3000}")private Integer redisConnectTimeout = 3000;@Value("${tencent.redis.connection.idle.timeout:10000}")private Integer redisConnectionIdleTimeout = 10000;@Value("${tencent.redis.connection.ping.interval:1000}")private Integer redisConnectionPingInterval = 1000;@Value("${tencent.redis.timeout:2000}")private Integer timeout = 2000;@Value("${tencent.redis.connection.pool.min.size:50}")private Integer redisConnectionPoolMinSize;@Value("${tencent.redis.connection.pool.max.size:200}")private Integer redisConnectionPoolMaxSize;@Value("${tencent.redis.retry.attempts:3}")private Integer redisRetryAttempts = 3;@Value("${tencent.redis.retry.interval:200}")private Integer redisRetryInterval = 200;@Beanpublic RedissonClient redissonClient(){Config redissonConfig = new Config();SingleServerConfig serverConfig = redissonConfig.useSingleServer();serverConfig.setAddress(redisAddress);serverConfig.setConnectionMinimumIdleSize(redisConnectionPoolMinSize);serverConfig.setIdleConnectionTimeout(redisConnectionIdleTimeout);serverConfig.setConnectionPoolSize(redisConnectionPoolMaxSize);serverConfig.setDatabase(redisDatabase);serverConfig.setPassword(redisPassword);serverConfig.setConnectTimeout(redisConnectTimeout);serverConfig.setPingConnectionInterval(redisConnectionPingInterval);serverConfig.setTimeout(timeout);serverConfig.setRetryAttempts(redisRetryAttempts);serverConfig.setRetryInterval(redisRetryInterval);redissonConfig.setCodec(new JsonJacksonCodec());return Redisson.create(redissonConfig);}}
参数配置
application.properties 格式
tencent.redis.address=redis://XX.XX.XX.XX:6379tencent.redis.password=XXXXtencent.redis.database=0tencent.redis.connect.timeout=3000tencent.redis.connection.idle.timeout=10000tencent.redis.connection.ping.interval=1000tencent.redis.timeout=2000tencent.redis.connection.pool.min.size=50tencent.redis.connection.pool.max.size=200tencent.redis.retry.attempts=3tencent.redis.retry.interval=200
application.yml 格式
tencent:redis:address: redis://XX.XX.XX.XX:6379password: XXXXdatabase: 0connect.timeout: 3000connection:idle.timeout: 10000ping.interval: 1000pool:min.size: 50max.size: 200timeout: 2000retry:attempts: 3interval: 200