记一次Redis消息订阅序列化和反序列化的错误

1、使用的SpringBoot;
2、Redis的Config配置了JSON序列化,覆盖JDK序列化,便于中文查看,配置文件使用ConditionalOnProperty断言;
3、Nacos动态配置;
解决思路:
1、查看Redis中存入的数据乱码,由此确定是Redis序列化和反序列化不匹配
记一次Redis消息订阅序列化和反序列化的错误_第1张图片
2、断点,发送端RedisTamplate得到使用的是JDK序列化,但消费端使用了JSON序列化;
3、断点配置文件,发现发送端未注入自定义RedisTamplate的Bean;
4、判断是否未扫描到配置文件;使用约定优于配置,默认Application文件都放于com.book文件夹下,所有的代码和自定义包都放于com.book.**下面,所以不存在扫描不到;
5、判断是否读取不到断言配置,注释断言,发现注入自定义的Bean;
6、查看是否配置断言属性,发现Nacos已配置,但不生效;
7、判断是否是配置读取优先级的问题,把配置信息放于bootstrap配置文件,bootstrap优先级高于application,发现可以正常读取,问题解决;
总结:
1、删除断言;
2、提高配置读取优先级;

你可能感兴趣的:(所遇问题,redis,java,数据库)