Redisson分散式鎖在Java應用中的使用
阿新 • • 發佈:2020-12-08
引入Redisson依賴,並配置相關的Bean
Spring 應用
通過Maven引入依賴
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
<version>3.14.0</version>
</dependency>
配置相關的Bean
建立配置類的Bean:
Config config = new Config(); config.useClusterServers() // use "rediss://" for SSL connection .addNodeAddress("redis://127.0.0.1:7181");
建立 Redisson 例項:
// 同步與非同步API
RedissonClient redisson = Redisson.create(config);
此外還有Reactive API和RxJava2 API相關的客戶端,具體檢視Redisson在GitHub上的說明。
Spring Boot 應用
通過Maven引入依賴
<dependency> <groupId>org.redisson</groupId> <artifactId>redisson-spring-boot-starter</artifactId> <version>3.14.0</version> </dependency>
注意,如果通過其他方式引入了redisson-spring-data
模組,則需要根據Spring Boot的版本,調整redisson-spring-data
的版本,具體的版本適配見這裡。
在application.properties中新增配置
基本的Redis配置(其中host、port、password必須配置):
spring: redis: database: host: port: password: ssl: timeout: cluster: nodes: sentinel: master: nodes:
根據需要新增Redisson相關的配置:
#path to config - redisson.yaml
redisson:
file: classpath:redisson.yaml
config: |
clusterServersConfig:
idleConnectionTimeout: 10000
connectTimeout: 10000
timeout: 3000
retryAttempts: 3
retryInterval: 1500
failedSlaveReconnectionInterval: 3000
failedSlaveCheckInterval: 60000
password: null
subscriptionsPerConnection: 5
clientName: null
loadBalancer: !<org.redisson.connection.balancer.RoundRobinLoadBalancer> {}
subscriptionConnectionMinimumIdleSize: 1
subscriptionConnectionPoolSize: 50
slaveConnectionMinimumIdleSize: 24
slaveConnectionPoolSize: 64
masterConnectionMinimumIdleSize: 24
masterConnectionPoolSize: 64
readMode: "SLAVE"
subscriptionMode: "SLAVE"
nodeAddresses:
- "redis://127.0.0.1:7004"
- "redis://127.0.0.1:7001"
- "redis://127.0.0.1:7000"
scanInterval: 1000
pingConnectionInterval: 0
keepAlive: false
tcpNoDelay: false
threads: 16
nettyThreads: 32
codec: !<org.redisson.codec.FstCodec> {}
transportMode: "NIO"
然後在程式碼中,就可以通過自動裝配,直接使用RedissonClient
或RedisTemplate
/ReactiveRedisTemplate
等Bean了。