實現了 List 、 Set 、 Map 等集合,可以用操作 JDK 類別的方式來操作 Redis,具有分散式特性, EP 18 增加了相依套件及設定。
Table of Contents
Toggle前言
Redis 是一個高性能鍵值儲存的記憶體型的資料庫,支援資料的持久化,可以將記憶體的資料儲存在磁碟,重啟後可以再重新載入,同時提供 List 、 Set 、 Zset 、 Hash 等資料結構儲存,也支援資料備份,即 Master-Slave 主從模式的資料備份。
Spring Boot Redisson
檔案目錄
./
+- build.gradle
+- src
+- main
+- resources
+- application.properties
+- redisson.yaml
Gradle
build.gradle
增加 Redisson Spring Boot Starter 。
修改完後,點右鍵,Gradle -> Refresh Gradle Project 。
buildscript {
group 'org.ruoxue.spring-boot-168'
version = '0.0.1-SNAPSHOT'
ext {
redissonVersion = '3.11.5'
}
}
dependencies {
implementation "org.redisson:redisson-spring-boot-starter:${redissonVersion}"
}
設定
application.properties
增加 Redisson 設定。
spring.redis.redisson.config=classpath:redisson.yaml
redisson.yaml
Redis 單點設定。
singleServerConfig:
idleConnectionTimeout: 60000
pingTimeout: 1000
connectTimeout: 60000
timeout: 3000
retryAttempts: 3
retryInterval: 1500
reconnectionTimeout: 3000
failedAttempts: 3
password:
subscriptionsPerConnection: 5
clientName: null
address: "redis://127.0.0.1:6379"
subscriptionConnectionMinimumIdleSize: 1
subscriptionConnectionPoolSize: 50
connectionMinimumIdleSize: 32
connectionPoolSize: 64
database: 0
threads: 4
nettyThreads: 4
codec:
class: "org.redisson.codec.JsonJacksonCodec"
transportMode: "NIO"
測試
Application.main
在主程式點右鍵執行 Run As -> Java Application,查看 console。
2022-10-18T21:29:15.867+0800 [main] INFO Version#logVersion:41 - Redisson 3.11.5
2022-10-18T21:29:16.339+0800 [redisson-netty-2-4] INFO MasterConnectionPool#lambda$run$0:168 - 32 connections initialized for 127.0.0.1/127.0.0.1:6379
2022-10-18T21:29:16.339+0800 [redisson-netty-2-3] INFO MasterPubSubConnectionPool#lambda$run$0:168 - 1 connections initialized for 127.0.0.1/127.0.0.1:6379
心得分享
提供了分散式鎖及同步器,並支援同步,非同步,非同步流,管道流等連接方式,可以在高併發的狀況下,為資源競爭提供解決方案。