微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

redis乱码问题

一、问题起因:

我在对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;
    }

}

再运行代码,则返回了结果。

问题解决

三、总结

如果我们对整个流程做完了检查,坚信自己的操作流程是对的,那么就是框架在作祟。这也就需要我们对框架有一个更深层次的认识了。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐