序言
将StringRedisTemplate引用到对应工具类
private StringRedisTemplate stringRedisTemplate;
public RedisUtil(StringRedisTemplate stringRedisTemplate) {
this.stringRedisTemplate = stringRedisTemplate;
}
对应的工具类源文件已经上传
-------------common---------------
🔍根据key的前缀和结尾 生成redis-key
/**
* hash 根据key的前缀和结尾 生成redis-key
* @param preKey 预先key
* @param endKey 结尾key
* @param buketNum 分桶数
* @return redis-key
*/
public static String getkey(String preKey,String endKey,int buketNum){
return preKey+endKey.hashCode()/buketNum;
}
🔍元素的hash 拆分组装redis-key
/**
* 元素的hash 拆分组装redis-key
* @param preKey key前缀
* @param endKey 元素 hash拆分key
* @return redis-key
*/
public static String getkey(String preKey,String endKey){
return getkey(preKey,endKey,100);
}
🔍指定缓存失效时间
/**
* 指定缓存失效时间
* @param key 键
* @param time 时间(秒)
*/
public boolean expire(String key, long time) {
if (time > 0) {
stringRedisTemplate.expire(key, time, TimeUnit.SECONDS);
}
return true;
}
🔍根据redis-key 获取过期时间
/**
* 根据key 获取过期时间
* @param key 键 不能为null
* @return 时间(秒) 返回0代表为永久有效
*/
public long getExpire(String key) {
return stringRedisTemplate.getExpire(key, TimeUnit.SECONDS);
}
🔍判断redis-key是否存在
/**
* 判断key是否存在
* @param key 键
* @return true 存在 false不存在
*/
public boolean hasKey(String key) {
return stringRedisTemplate.hasKey(key);
}
🔍删除redis缓存(支持多选)
/**
* 删除缓存
* @param key 可以传一个值 或多个
*/
@SuppressWarnings("unchecked")
public void delete(String... key) {
if (key != null && key.length > 0) {
if (key.length == 1) {
stringRedisTemplate.delete(key[0]);
} else {
stringRedisTemplate.delete((Collection<String>) CollectionUtils.arrayToList(key));
}
}
}
-------------String---------------
🔍根据string类型普通缓存获取
/**
* 普通缓存获取
* @param key 键
* @return 值
*/
public String get(String key) {
return key == null ? null : stringRedisTemplate.opsForValue().get(key);
}