import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import java.util.concurrent.TimeUnit;
/**
* @Author: 江湖@小小白
* @Date: 2021/10/20
*/
@Component
@Slf4j
public class RedisUtils {
private final RedisTemplate<String, Object> redisTemplate;
@Autowired
public RedisUtils(RedisTemplate<String, Object> redisTemplate) {
this.redisTemplate = redisTemplate;
}
/**
* 普通缓存获取
* @param key 键
* @return 值
*/
public Object get(String key){
return key == null ? null : redisTemplate.opsForValue().get(key);
}
/**
* 普通缓存放入
* @param key 键
* @param value 值
* @return true成功 false失败
*/
public boolean set(String key, Object value) {
try {
redisTemplate.opsForValue().set(key, value);
return true;
} catch (Exception e) {
LOGGER.error("未设置时长普通缓存出现异常:[{}]", e);
return false;
}
}
/**
* 删除缓存
* @param key
*/
public void del(String key){
if(redisTemplate.hasKey(key)){
redisTemplate.delete(key);
}
}
/**
* 普通缓存放入并设置时间
* @param key 键
* @param value 值
* @param time 时间(秒) time要大于0 如果time小于等于0 将设置无限期
* @return true成功 false 失败
*/
public boolean set(String key, Object value, long time){
try {
if(time > 0){
redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS);
}else{
set(key, value);
}
return true;
} catch (Exception e) {
LOGGER.error("设置时长普通缓存出现异常:[{}]", e);
return false;
}
}
/**
* 将list放入缓存
* @param key
* @param value
* @param time
* @return
*/
public boolean lSet(String key, Object value, long time) {
try {
redisTemplate.opsForList().rightPush(key, value);
if (time > 0) {
expire(key, time);
}
return true;
} catch (Exception e) {
LOGGER.error("设置时长将list放入缓存出现异常:[{}]", e);
return false;
}
}
/**
* 指定缓存失效时间
* @param key 键
* @param time 时间(秒)
* @return
*/
public boolean expire(String key, long time){
try {
if(time > 0){
redisTemplate.expire(key, time, TimeUnit.SECONDS);
}
return true;
} catch (Exception e) {
LOGGER.error("指定缓存失效时间出现异常:[{}]", e);
return false;
}
}
}
RedisUtils工具类
最新推荐文章于 2024-07-08 15:22:13 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)