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);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/244366.html
標籤:java
上一篇:python基礎練習題(按條件對指定序列求和,列印99乘法表、求斐波那契數列、百馬百擔、求水仙花數)、集合的講解、一些公關方法
下一篇:python爬蟲爬取圖片(續)
