package com.ltkj.tduck.utils;
|
|
import cn.hutool.core.convert.Convert;
|
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.StrUtil;
|
import com.ltkj.common.core.redis.RedisCache;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.compress.utils.Lists;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.cache.Cache;
|
import org.springframework.cache.annotation.EnableCaching;
|
import org.springframework.stereotype.Component;
|
|
import java.util.List;
|
|
/**
|
* @author : tduck
|
* @description : 基于ehcache实现
|
* @create : 2022/01/06 10:40
|
**/
|
@Component
|
@Slf4j
|
@EnableCaching
|
public class CacheUtils {
|
private final String ETERNAL_CACHE_NAME = "eternal_cache";
|
private final String TEMP_CACHE_NAME = "temp_cache";
|
// @Autowired
|
// private EhCacheCacheManager cacheManager;
|
@Autowired
|
private RedisCache cache;
|
|
/**
|
* 保存到Cache
|
*/
|
public void save(String key, String value) {
|
// cacheManager.getCache(ETERNAL_CACHE_NAME).put(key, value);
|
cache.setCacheObject(key,value);
|
}
|
|
/**
|
* 获取
|
*
|
* @param key
|
*/
|
public String get(String key) {
|
// Cache.ValueWrapper valueWrapper = cacheManager.getCache(ETERNAL_CACHE_NAME).get(key);
|
// Cache.ValueWrapper valueWrapper = cache.getCacheObject(key);
|
// if (ObjectUtil.isNotNull(valueWrapper) && ObjectUtil.isNotNull(valueWrapper.get())) {
|
// return valueWrapper.get().toString();
|
// }
|
Object valueWrapper = cache.getCacheObject(key);
|
if (ObjectUtil.isNotNull(valueWrapper) && ObjectUtil.isNotNull(valueWrapper)) {
|
return valueWrapper.toString();
|
}
|
return null;
|
}
|
|
|
/**
|
* 自增
|
*
|
* @param key
|
* @param number
|
* @return
|
*/
|
public Long incr(String key, Integer number) {
|
String v = get(key);
|
if (StrUtil.isBlank(v)) {
|
v = "0";
|
}
|
long finalValue = Convert.toLong(v) + number;
|
save(key, String.valueOf(finalValue));
|
return finalValue;
|
}
|
|
|
/**
|
* 添加到集合缓存
|
*
|
* @param key
|
* @param value
|
*/
|
public void addList(String key, Object value) {
|
List coll = this.getList(key, Object.class);
|
coll.add(value);
|
// cacheManager.getCache(TEMP_CACHE_NAME).put(key, JsonUtils.objToJson(coll));
|
cache.setCacheObject(key, JsonUtils.objToJson(coll));
|
}
|
|
|
/**
|
* 从集合中移除
|
*
|
* @param key
|
* @param value
|
*/
|
public void removeList(String key, Object value) {
|
List coll = this.getList(key, Object.class);
|
coll.remove(value);
|
// cacheManager.getCache(TEMP_CACHE_NAME).put(key, JsonUtils.objToJson(coll));
|
}
|
|
/**
|
* 获取集合
|
*
|
* @param key
|
*/
|
public List getList(String key, Class classz) {
|
String v = get(key);
|
if (ObjectUtil.isNotNull(v)) {
|
return JsonUtils.jsonToList(v, classz.getClass());
|
}
|
return Lists.newArrayList();
|
}
|
|
|
/**
|
* 临时保存 默认5min
|
*/
|
public void tempSave(String key, String value) {
|
// cacheManager.getCache(TEMP_CACHE_NAME).put(key, value);
|
}
|
|
/**
|
* 获取临时存储变量
|
*
|
* @param key
|
*/
|
// public String getTemp(String key) {
|
// Cache.ValueWrapper valueWrapper = cacheManager.getCache(TEMP_CACHE_NAME).get(key);
|
// if (ObjectUtil.isNotNull(valueWrapper) && ObjectUtil.isNotNull(valueWrapper.get())) {
|
// return valueWrapper.get().toString();
|
// }
|
// return null;
|
// }
|
//
|
// public void removeTemp(String key) {
|
// cacheManager.getCache(TEMP_CACHE_NAME).evict(key);
|
// }
|
|
|
}
|