1.报错信息:
服务器上的redis客户端:
Redis Desktop Manager:
Cannot open value tab: Cannot load keybecause itdoesn t exist in database. Please reload connection tree andtry again.
2.解决:添加配置类提供两种配置方式(注释的为方式一)
两种方式存入resdis中的内容略有不同。
(1)添加redis的配置类
import com.diploma.entity.person.User;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
@Configuration
public class RedisConfig {
@Bean
public RedisTemplate<Object, Object> userRedisTemplate(RedisConnectionFactory factory) {
/*(方式一)// 创建RedisTemplate对象
RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<>();
// 设置连接工厂
redisTemplate.setConnectionFactory(factory);
// 设置默认的序列化器
Jackson2JsonRedisSerializer<User> serializer = new Jackson2JsonRedisSerializer<>(User.class);
redisTemplate.setDefaultSerializer(serializer);
return redisTemplate;*/
//设置序列化Key的实例化对象
redisTemplate.setKeySerializer(new StringRedisSerializer());
//设置序列化Value的实例化对象
redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
return redisTemplate;
}
}
(2)注入自己配置类编码后的RedisTemplate,使用此模板操作redis就ok了。
注意:使用第一种方式时注入的模板名称要和自己配置类中的模板名称相同,不然会存储不进去。
3.原因分析:
看网上介绍说redis的默认序列化方式使用的是jdk的序列化方式,添加配置后将其序列化为json格式就好了。
内容有误的话请指正。。。