Redis组件
大约 2 分钟常用组件缓存
git地址:
http://10.16.202.103:8089/component/component-ser/redis-spring-boot-starter
对 spring-boot-starter-data-redis
进行了二次封装,简化了使用 RedisTemplate
的操作。
使用
添加依赖:
<dependency>
<groupId>com.gosci.tech</groupId>
<artifactId>redis-spring-boot-starter</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
配置redis连接信息:
spring:
redis:
host: 127.0.0.1
port: 6379
timeout: 10s
password: 123456
database: 6
lettuce:
pool:
min-idle: 0
max-idle: 8
max-active: 8
max-wait: -1ms
value 操作示例
@RestController
@RequestMapping("redis")
@RequiredArgsConstructor
public class ValueTestController {
private final RedisValueOpe redisValueOpe;
/**
* 设置指定 key 的值
*/
@GetMapping("set")
public void set(@RequestParam String key,@RequestParam String value){
redisValueOpe.set(key,value);
}
/**
* 设置指定 key 的值,带过期时间
*/
@GetMapping("set/ttl")
public void setTtl(String key,String value){
redisValueOpe.setEx(key,value,100, TimeUnit.SECONDS);
}
/**
* 获取指定 key 的值,String类型,不需要指定泛型
*/
@GetMapping("get")
public String get(String key){
return redisValueOpe.get(key);
}
/**
* get 其他类型如Double,需要指定泛型
*/
@GetMapping("get2")
public Double get2(String key){
return redisValueOpe.<Double>get(key);
}
/**
* 返回 key 中字符串值的子字符
*/
@GetMapping("get/range")
public String getRange(String key){
return redisValueOpe.getRange(key,1,3);
}
/**
* 将给定 key 的值设为 value ,并返回 key 的旧值(old value)
*/
@GetMapping("getAndSet")
public String getAndSet(String key, String value){
return redisValueOpe.getAndSet(key,value);
}
/**
* 批量获取
*/
@GetMapping("multiGet")
public List<Object> multiGet(String key1, String key2){
return redisValueOpe.multiGet(Arrays.asList(key1,key2));
}
/**
* 只有在 key 不存在时设置 key 的值
* @return 之前已经存在返回false,不存在返回true
*/
@GetMapping("setIfAbsent")
public Boolean setIfAbsent(String key, String value) {
return redisValueOpe.setIfAbsent(key, value);
}
/**
* 批量添加
* @param maps
*/
@GetMapping("multiSet")
public void multiSet() {
Map<String, Object> maps=new HashMap<>(2);
maps.put("aa","bb");
maps.put("temprature",23);
redisValueOpe.multiSet(maps);
}
/**
* 增加(自增长), 负数则为自减
* value 必须为数值型数据
*/
@GetMapping("incrBy")
public Long incrBy(String key, long increment) {
return redisValueOpe.incrBy(key, increment);
}
/**
* 浮点自增
*/
@GetMapping("incrByFloat")
public Double incrByFloat(String key, double increment) {
return redisValueOpe.incrByFloat(key, increment);
}
/**
* 追加到末尾
*/
@GetMapping("append")
public Integer append(String key, String value) {
return redisValueOpe.append(key, value);
}
}
RedisTemplate操作示例
@RestController
@RequestMapping("temp")
@RequiredArgsConstructor
public class TemplateController {
private final RedisTemplateOpe redisTemplateOpe;
/**
* 删除key
*/
@GetMapping("delete")
public Boolean delete(String key) {
Boolean delete = redisTemplateOpe.delete(key);
return delete;
}
/**
* 是否存在key
*/
@GetMapping("hasKey")
public Boolean hasKey(String key) {
return redisTemplateOpe.hasKey(key);
}
/**
* 设置过期时间
*/
@GetMapping("expire")
public Boolean expire(String key) {
return redisTemplateOpe.expire(key, 10, TimeUnit.DAYS);
}
/**
* 查找匹配的key
*/
@GetMapping("keys")
public Set<String> keys(String pattern) {
return redisTemplateOpe.keys(pattern);
}
}