redis工具类使用
- 这里使用的是StringRedisTemplate,以及ObjectMapper,作 为转换对象使用
- 直接上代码
- /**
-
redis操作类 使用此类可使用Autowired注入
-
author:JiangHongYu
*/
@Service
public class RedisCommonUtil {@Autowired
private StringRedisTemplate stringRedisTemplate;@Autowired
private ObjectMapper objectMapper;/**
- 是否包含Key
- @param key
- @return
*/
public boolean hasKey(String key){
return stringRedisTemplate.hasKey(key);
}
/**
- 存入redis time默认单位是小时,使用时请自行计算
- @param key
- @param o
- @param time
*/
public void set(String key,Object o,long time){
this.delKey(key);
if(StringUtils.isEmpty(o)) return;
stringRedisTemplate.opsForValue().set(key, JSON.toJSONString(o),time, TimeUnit.HOURS);
}
/**
- value+=1
- @param key
- @return
*/
public Long incr(String key){
Long increment = stringRedisTemplate.opsForValue().increment(key);
return increment;
}
/**
- 获取缓存数据 统一返回String类型,使用时请自行转换
- @param key
- @return
*/
public String get(String key){
return stringRedisTemplate.opsForValue().get(key);
}
/**
- redis删除单个key
- @param key
- @return
*/
public boolean delKey(String key){
return stringRedisTemplate.delete(key);
}
/**
- 模糊删除key
- @param keys
- @return
/
public Long delKeys(String keys) {
Set key = stringRedisTemplate.keys(keys + "");
return stringRedisTemplate.delete(key);
}
/**此处要注意rightPushAll的坑,下一篇会详细介绍 - 向右添加
- @param key
- @param list
*/
public void rightPushAll(String key, List list) throws JsonProcessingException {
// 先删除再添加
this.delKey(key);
String [] objArr = new String[list.size()];
for (int i = 0; i < list.size(); i++) {
objArr[i] = this.BeanToString(list.get(i));
}
stringRedisTemplate.opsForList().rightPushAll(key,objArr);
}
/**
- redis分布式锁 时间单位是分钟,请自行计算
- @param key
- @param value
- @param time
- @return
*/
public boolean setIfAbsent(String key ,String value,long time){
return stringRedisTemplate.opsForValue().setIfAbsent(key, value, time, TimeUnit.MINUTES);
}
/**
- 通过索引获取redis里面的数据
- @param key
- @param start
- @param end
- @return
/
public List rang(String key, long start, long end){
return stringRedisTemplate.opsForList().range(key,start,end);
}
/* - String 转换成 javaBean 使用完get 返回String 可使用此方法转换javaBean
- @param str
- @param t
- @return
- @throws JsonProcessingException
*/
public T StringToBean(String str,Class t) throws JsonProcessingException {
if(StringUtils.isEmpty(str)) return null;
//忽略大小写
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
objectMapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);
return objectMapper.readValue(JSON.parse(str).toString(), t);
}
/**
- javaBean转String
- @param obj
- @return
- @throws JsonProcessingException
*/
public String BeanToString(Object obj) throws JsonProcessingException {
return objectMapper.writeValueAsString(obj);
}