Redis是一個高性能的key-value數據庫,經常使用於搭建緩存系統,提升併發響應速度。Spring集成Redis只需簡單配置,本文進一步分享封裝的RedisService服務。
java
代碼文件git |
功能要點github |
|
SpringBoot集成Redisredis |
pom.xmlspring |
引入Redis依賴:spring-boot-starter-data-redis數據庫 |
application.yml緩存 |
配置Redis服務器:host, port服務器 |
|
封裝RedisService服務併發 |
RedisService.javaapp |
封裝Redis調用:RedisTemplate, ValueOperations, ListOperations, HashOperations, SetOperations |
單元測試 |
RedisServiceTest.java |
測試封裝的Redis功能函數 |
功能調用 |
CheckController.java |
增長REST接口/chk/cache,調用Redis讀寫功能 |
l 代碼
Github下載:https://github.com/jextop/StarterApi/
l SpringBoot集成Redis
1. 新建SpringBoot項目時,選中Redis,將自動添加Redis依賴。
2. 已有SpringBoot項目,能夠在pom.xml中直接引用Redis Starter:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
3. 在application.yml中配置Redis服務器信息:
spring:
redis:
host: 127.0.0.1
port: 6379
database: 0
password:
timeout: 100
jedis:
pool:
max-active: 8
max-wait: -1
max-idle: 10
min-idle: 0
l 調用Redis功能函數,封裝服務RedisService.java
1. StringRedisTemplate對String類型的key和value封裝
2. 使用ValueOperations<String, String>對String操做
a) setStr()
b) getStr()
3. ValueOperations<Object, Object>對Object操做
a) set()
b) get()
4. ListOperations<Object, Object>對列表操做
a) lSet()
b) lGet()
5. HashOperations<Object, Object, Object>對哈希表操做
a) hSet()
b) hGet()
6. SetOperations<Object, Object>對集合操做
a) sSet()
b) sGet()
l 單元測試RedisServiceTest.java
l 功能調用
1. 增長RestController:CheckController.java
2. 增長REST接口/chk/cache,調用Redis讀寫功能
@GetMapping(value = "/chk/cache")
public Object cache(@RequestAttribute(required = false) String ip) {
// Get a unique key
String key = String.format("cache_test_%s_%s_緩存", ip, CodeUtil.getCode());
// Set cache
redisService.setStr(key, key, 3);
// Get cache
String str = redisService.getStr(key);
// Delete key
redisService.delStr(key);
return new HashMap<String, Object>() {{
put("chk", "cache");
put("msg", str);
put("status", key.equals(str));
}};
}
l REST接口調用RedisService示例