一、问题起因:
我在对redis进行存储数据的时候,存储到redis里面的数据为这样的
这里我并没有理会,然后我再获取其中的一个值的时候,在redis的客户端进行操作的时候能获取到里面的值
然后再用java的方式进行获取,发现一直返回Nul,表示很无语
@Test
public void createOfficialLetter() {
boolean officialLetter = generateProjectPdfService.createOfficialLetter("2021101711570004100");
Assert.assertTrue(officialLetter);
}
刚开始一直以为是redis库连接错了,但是仔细核对后发现确实是当前的库,并没有错。
这个时候只能猜到传的key确实在redis中不存在,但是我是从库中复制过来的key,不可能不存在,那么只有一种情况,就是乱码 了。然后对其进行解决
二、问题解决
package com.dfec.project.config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
/**
* @program: rf-project
* @description: Redis配置
* @author: trg
* @create: 2021-10-19 16:14
*/
@Configuration
public class RedisConfigurtion {
@Autowired
private RedisTemplate redisTemplate;
/**
* 解决Redis乱码
*
* @return
*/
@Bean
public RedisTemplate<String, Object> stringSerializerRedisTemplate() {
RedisSerializer<String> stringSerializer = new StringRedisSerializer();
redisTemplate.setKeySerializer(stringSerializer);
redisTemplate.setValueSerializer(stringSerializer);
redisTemplate.setHashKeySerializer(stringSerializer);
redisTemplate.setHashValueSerializer(stringSerializer);
return redisTemplate;
}
}
再运行代码,则返回了结果。
问题解决
三、总结
如果我们对整个流程做完了检查,坚信自己的操作流程是对的,那么就是框架在作祟。这也就需要我们对框架有一个更深层次的认识了。