版本
spring-boot:2.4.1
redisson-spring-boot-starter:3.15.6
如何选择版本
如果是
redisson-spring-data-24
,那么对应的springboot
版本就是2.4.x
的版本
依赖
方式一:使用 redisson-spring-boot-starter
pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson-spring-boot-starter</artifactId>
</dependency>
方式二:使用 redisson
pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
<version>3.15.5</version>
</dependency>
配置
方式一:在同一个配置里写
application.yml
server:
port: 8080
spring:
redis:
redisson:
config: |
singleServerConfig:
#password: 123456
address: redis://127.0.0.1:6379
database: 0
threads: 0
nettyThreads: 0
codec: !<org.redisson.codec.JsonJacksonCodec> {}
transportMode: "NIO"
logging:
level:
root: info
threads(线程池数量)
- 默认值:
当前处理核数量 * 2
- 这个线程池数量被所有 RTopic 对象监听器,RRemoteService 调用者和 RExecutorService 任务共同共享。
nettyThreads (Netty 线程池数量)
- 默认值:
当前处理核数量 * 2
- 这个线程池数量是在一个 Redisson 实例内,被其创建的所有分布式数据类型和服务,以及底层客户端所一同共享的线程池里保存的线程数量。
executor(线程池)
- 单独提供一个用来执行所有 RTopic 对象监听器,RRemoteService 调用者和 RExecutorService 任务的线程池(ExecutorService)实例。
eventLoopGroup
- 用于特别指定一个 EventLoopGroup,EventLoopGroup 是用来处理所有通过 Netty 与 Redis 服务之间的连接发送和接受的消息。每一个 Redisson 都会在默认情况下自己创建管理一个 EventLoopGroup 实例。因此,如果在同一个 JVM 里面可能存在多个 Redisson 实例的情况下,采取这个配置实现多个 Redisson 实例共享一个 EventLoopGroup 的目的。
- 只有
io.netty.channel.epoll.EpollEventLoopGroup
或io.netty.channel.nio.NioEventLoopGroup
才是允许的类型。
transportMode(传输模式)
- 默认值:
TransportMode.NIO
- 可选参数:
TransportMode.NIO
TransportMode.EPOLL
:需要依赖里有netty-transport-native-epoll
包(Linux)TransportMode.KQUEUE
:需要依赖里有netty-transport-native-kqueue
包(macOS)
lockWatchdogTimeout(监控锁的看门狗超时,单位:毫秒)
- 默认值:
30000
- 该参数只适用于分布式锁的加锁请求中,未明确使用
leaseTimeout
参数的情况。如果该看门口未使用lockWatchdogTimeout
去重新调整一个分布式锁的lockWatchdogTimeout
超时,那么这个锁将变为失效状态。这个参数可以用来避免由 Redisson 客户端节点宕机或其他原因造成死锁的情况。
codec(编码)
- 默认值:
org.redisson.codec.JsonJacksonCodec
- 如果将
JsonJacksonCodec
换成FstCodec
,需要添加依赖。FST fast-serialization
是重新实现的 Java 快速对象序列化的开发包。序列化速度更快、体积更小,而且兼容 JDK 原生的序列化,要求 JDK 1.7 支持。
<dependency>
<groupId>de.ruedigermoeller</groupId>
<artifactId>fst</artifactId>
<version>2.57</version>
</dependency>
方式二:独立的 redisson 配置
application.yml
server:
port: 8080
spring:
redis:
redisson:
file: classpath:redisson.yml
redisson.yml
singleServerConfig:
#password: 123456
address: redis://127.0.0.1:6379
database: 0
threads: 0
nettyThreads: 0
codec: !<org.redisson.codec.JsonJacksonCodec> {}
transportMode: "NIO"
方式三:使用代码配置
@Configuration
public class RedissonConfig {
@Bean
public RedissonClient redisson() throws IOException {
// 1.创建配置
Config config = new Config();
// 集群模式
// config.useClusterServers().addNodeAddress("127.0.0.1:7004", "127.0.0.1:7001");
// 2.根据 Config 创建出 RedissonClient 示例。可以用"rediss://"来启用SSL连接
config.useSingleServer().setAddress("redis://127.0.0.1:6379");
return Redisson.create(config);
}
}
参考链接