Springboot整合redis,根据key得到的值为null.也不报错,但reids确实中含有key的值

今天用spring-boot在整合redis时,在测试的时候,发现得到的值为NULL,但是也不报错,redis中确实存在这样的  key值

Springboot整合redis,根据key得到的值为null.也不报错,但reids确实中含有key的值_第1张图片

redis中确实存在这样的key;

Springboot整合redis,根据key得到的值为null.也不报错,但reids确实中含有key的值_第2张图片

起初是认为可能是 redis的 value序列化出问题了。在debug过程中发现并不是

Springboot整合redis,根据key得到的值为null.也不报错,但reids确实中含有key的值_第3张图片

说明已经连接上了redis,返回的就是null,在调试的过程中发现 

Springboot整合redis,根据key得到的值为null.也不报错,但reids确实中含有key的值_第4张图片

输出流好像有点问题.

Springboot整合redis,根据key得到的值为null.也不报错,但reids确实中含有key的值_第5张图片

一步步深入找到 key的 byte数组:

到最后 客户端发送的byte数组也是这个数组 : 

Springboot整合redis,根据key得到的值为null.也不报错,但reids确实中含有key的值_第6张图片

自己写个的demo,测试一下到底客户端到底发送的key是什么:
Springboot整合redis,根据key得到的值为null.也不报错,但reids确实中含有key的值_第7张图片

看到这里已经彻底明白了,是key序列化的问题,默认key序列化选用的序列化方式为jdk序列化

Springboot整合redis,根据key得到的值为null.也不报错,但reids确实中含有key的值_第8张图片

所以在配置文件中给改一下

Springboot整合redis,根据key得到的值为null.也不报错,但reids确实中含有key的值_第9张图片

再次测试:

Springboot整合redis,根据key得到的值为null.也不报错,但reids确实中含有key的值_第10张图片

OK, 搞定.

你可能感兴趣的:(JAVAEE,spring-boot,redis)