今天遇到的问题 bug 2020-04-25
要把数据存入redis 实体类 需要实现 serializeable接口
如果不实现serializeable接口的话 还有一种比较更好的方法:
配置 一个RedisConfig类,在里面配置 实现自定义的序列化接口
这样还有个好处,就是存在redis中的数据名字 格式等 都不是一长串的数据 比较好管理.
配置类的相关代码如下:
//RedisTemplate默认的序列化方式使用的是JDK的序列化
//设置了key的序列化方式
template.setKeySerializer(new StringRedisSerializer());
//设置了value的序列化方式
template.setValueSerializer(jackson2JsonRedisSerializer);
配置类的整个代码如下:
1 @Configuration 2 public class RedisConfig { 3 @Bean 4 public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) { 5 RedisTemplate<Object, Object> template = new RedisTemplate<>(); 6 7 ObjectMapper objectMapper = new ObjectMapper(); 8 objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")); 9 10 template.setConnectionFactory(redisConnectionFactory); 11 Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class); 12 //把自定义objectMapper设置到jackson2JsonRedisSerializer中(可以不设置,使用默认规则) 13 jackson2JsonRedisSerializer.setObjectMapper(objectMapper); 14 15 //RedisTemplate默认的序列化方式使用的是JDK的序列化 16 //设置了key的序列化方式 17 template.setKeySerializer(new StringRedisSerializer()); 18 //设置了value的序列化方式 19 template.setValueSerializer(jackson2JsonRedisSerializer); 20 return template; 21 } 22 }