下面是封装好的redis工具类
保存位置
这个类封装的是redis,直接使用这个类的方法向reids中存取值,设置过期时间
import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Component; import java.util.concurrent.TimeUnit; @Component @RequiredArgsConstructor public class CacheService { /** * redis工具类 */ //获得默认StringRedisTemplate @Autowired private StringRedisTemplate stringRedisTemplate; //设置默认事件 public static final long defaultTime = 2; /** * 存入redis 设置默认有效时间的缓存 */ public void setCacheWithDefaultTime(String key, String value) { stringRedisTemplate.opsForValue().set(key, value, defaultTime, TimeUnit.MINUTES); } /** * 存入redis 设置自定义有效时间的缓存 */ public void setCacheWithCustomerTime(String key, String value, long minute) { stringRedisTemplate.opsForValue().set(key, value, minute, TimeUnit.MINUTES); } /** * 设置无效时间的缓存 * 存入redis */ public void setCache(String key, String value) { stringRedisTemplate.opsForValue().set(key, value); } /** * 判断redis是否存在 */ public boolean exitsKey(String key) { return stringRedisTemplate.hasKey(key); } /** * 获得redis */ public String getCache(String key) { if (exitsKey(key)) { return stringRedisTemplate.opsForValue().get(key); } return ""; } /** * 清除redis */ public void clearCache(String key) { stringRedisTemplate.delete(key); } }
上面封装的redis工具类存入的key-value都是str,实际使用时
存——要将后端的各种数据类型(主要是单个obj以及各种集合)转为str
取——将value转回原来的数据类型
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.type.CollectionLikeType; import java.util.List; /**' * Json 转换类 */ public class JsonUtils { static ObjectMapper objectMapper=new ObjectMapper(); /** * 对象转字符串 */ public static String obj2Str(Object obj) { try { String s = objectMapper.writeValueAsString(obj); return s; } catch (JsonProcessingException e) { e.printStackTrace(); } return ""; } /** * 字符串转对象 */ public static <T> T str2Obj(String str, Class<T> clazz) { try { T t = objectMapper.readValue(str, clazz); return t; } catch (Exception e) { e.printStackTrace(); } return null; } /** * 字符串转换集合 */ public static <T> List<T> str2List(String str, Class<T> clazz){ CollectionLikeType collectionLikeType = objectMapper.getTypeFactory().constructCollectionLikeType(List.class, clazz); try { List<T> list = objectMapper.readValue(str, collectionLikeType); return list; } catch (JsonProcessingException e) { e.printStackTrace(); } return null; } }