我在对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; } }
再运行代码,则返回了结果。
问题解决
如果我们对整个流程做完了检查,坚信自己的操作流程是对的,那么就是框架在作祟。这也就需要我们对框架有一个更深层次的认识了。