代码示例

最近更新时间:2025-07-01 11:17:01

我的收藏

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;

@Configuration
public 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;

@Bean
public 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:6379
tencent.redis.password=XXXX
tencent.redis.database=0
tencent.redis.connect.timeout=3000
tencent.redis.connection.idle.timeout=10000
tencent.redis.connection.ping.interval=1000
tencent.redis.timeout=2000
tencent.redis.connection.pool.min.size=50
tencent.redis.connection.pool.max.size=200
tencent.redis.retry.attempts=3
tencent.redis.retry.interval=200

application.yml 格式

tencent:
redis:
address: redis://XX.XX.XX.XX:6379
password: XXXX
database: 0
connect.timeout: 3000
connection:
idle.timeout: 10000
ping.interval: 1000
pool:
min.size: 50
max.size: 200
timeout: 2000
retry:
attempts: 3
interval: 200