我們在這里介紹如何在系統中引入redisson-spring-boot-starter依賴來實現redis緩存管理。
1、在GitEgg-Platform中新建gitegg-platform-redis用於管理工程中用到的Redis公共及通用方法。
<!-- redisson Redis客戶端-->
<dependency>
<groupid>org.redisson</groupid>
<artifactid>redisson-spring-boot-starter</artifactid>
</dependency>
2、在gitegg-platform-bom的pom.xml文件中添加gitegg-platform-redis
<!-- gitegg cache自定義擴展 -->
<dependency>
<groupid>com.gitegg.platform</groupid>
<artifactid>gitegg-platform-redis</artifactid>
<version>${gitegg.project.version}</version>
</dependency>
3、GitEgg-Platform重新install,在GitEgg-Cloud子工程gitegg-service-system代碼SystemController.java中添加設置和獲取緩存的測試方法
private final RedissonClient redisson;
private final RedisTemplate<string, string=""> template;
@ApiOperation(value = "緩存測試設置值")
@GetMapping(value = "redis/set")
public Result redisSet(@RequestParam("id") String id) {
RMap<string, string=""> m = redisson.getMap("test", StringCodec.INSTANCE);
m.put("1", id);
return Result.success("設置成功");
}
@ApiOperation(value = "緩存測試獲取值")
@GetMapping(value = "redis/get")
public Result redisGet() {
BoundHashOperations<string, string,="" string=""> hash = template.boundHashOps("test");
String t = hash.get("1");
return Result.success(t);
}
4、gitegg-service-system中的GitEggSystemApplication.java添加@EnableCaching注解
package com.gitegg.service.system;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.context.annotation.ComponentScan;
/**
* gitegg-system 啟動類
*/
@EnableDiscoveryClient
@ComponentScan(basePackages = "com.gitegg")
@MapperScan("com.gitegg.*.*.mapper")
@SpringBootApplication
@EnableCaching
public class GitEggSystemApplication {
public static void main(String[] args) {
SpringApplication.run(GitEggSystemApplication.class,args);
}
}
5、在Nacos配置文件中添加redis的相關配置,這里使用單機版redis,其他模式配置請參考官方文檔
spring:
redis:
database: 1
host: 127.0.0.1
port: 6379
password: root
ssl: false
timeout: 2000
redisson:
config: |
singleServerConfig:
idleConnectionTimeout: 10000
connectTimeout: 10000
timeout: 3000
retryAttempts: 3
retryInterval: 1500
password: root
subscriptionsPerConnection: 5
clientName: null
address: "redis://127.0.0.1:6379"
subscriptionConnectionMinimumIdleSize: 1
subscriptionConnectionPoolSize: 50
connectionMinimumIdleSize: 32
connectionPoolSize: 64
database: 0
dnsMonitoringInterval: 5000
threads: 0
nettyThreads: 0
codec: !<org.redisson.codec.jsonjacksoncodec> {}
"transportMode":"NIO"
6、啟動項目,使用swagger進行測試
通過以上設置的值和獲取的結果可知,我們配置的緩存已生效。
本文源碼在https://gitee.com/wmz1930/GitEgg 的chapter-20分支。