redis通用配置类的使用详解

 更新时间:2025年08月02日 10:58:42   作者:天珩  
Redis通用配置类通过设置JSON序列化器,解决Spring Boot中RedisTemplate默认使用byte数组存储数据导致的不可读问题,使数据以JSON字符串形式保存,便于查看与调试

redis通用配置类

作用 处理Springboot使用 RedisTemplate过程中的编码问题

现象如下,看数据的时候不方便

所以添加一下的配置类之后,就可以了

package com.htb.beidawebspringboot10redis.config;

import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;

import java.net.UnknownHostException;
import java.text.SimpleDateFormat;

/**
 * @Description:Redis通用配置类
 * @Author 16221
 * @Date 2020/4/23
 **/
@Configuration
public class RedisConfig {
    @Bean
    //不指定id的话bean 的id就是方法名
    //返回结果就是spring中管理的bean
    public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory)
            throws UnknownHostException {
        RedisTemplate<Object, Object> template = new RedisTemplate<>();

        //ObjectMapper 指定在转成json的时候的一些转换规则
        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));

        template.setConnectionFactory(redisConnectionFactory);
        Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
        //把自定义objectMapper设置到jackson2JsonRedisSerializer中(可以不设置,使用默认规则)
        jackson2JsonRedisSerializer.setObjectMapper(objectMapper);

        //RedisTemplate默认的序列化方式使用的是JDK的序列化
        //设置了key的序列化方式
        template.setKeySerializer(new StringRedisSerializer());
        //设置了value的序列化方式
        template.setValueSerializer(jackson2JsonRedisSerializer);
        return template;
    }
}

原理

设置其他的序列化方式使用json形式

RedisTemplate,默认序列化的时候,用的RedisTemplate里面的一个RedisSerializer对象的string方法

看string()方法

转成了byte[] bytes

就是说最终是转成了字节流

所以并不是通过json串的方式,这样出来的结果就不是json串

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Redis哨兵机制的使用详解

    Redis哨兵机制的使用详解

    文章讲解了Redis哨兵机制的基本原理、主库和从库自动切换的过程、如何减少误判、哨兵集群的组成和通信机制,以及哨兵在故障发生时如何选举Leader进行主从切换
    2025-01-01
  • 关于Redis最常见的十道面试题总结大全

    关于Redis最常见的十道面试题总结大全

    Redis作为一个高性能的内存数据存储系统,具有快速读写、持久性、数据结构多样性等特点,广泛应用于各种应用场景,这篇文章主要给大家介绍了关于Redis最常见的十道面试题总结的相关资料,需要的朋友可以参考下
    2024-07-07
  • RedisTemplate常用方法大全(面试必备)

    RedisTemplate常用方法大全(面试必备)

    RedisTemplate是SpringData Redis提供的一个类,本文主要介绍了RedisTemplate常用方法大全,具有一定的参考价值,感兴趣的可以了解一下
    2024-05-05
  • redis大key和大value的危害及解决

    redis大key和大value的危害及解决

    本文主要介绍了redis大key和大value的危害及解决
    2024-03-03
  • Redis 命令整理并说明如何使用

    Redis 命令整理并说明如何使用

    这篇文章主要介绍了Redis 命令整理并说明如何使用的相关资料,需要的朋友可以参考下
    2017-02-02
  • Redis恢复被移除集群的服务器实操步骤

    Redis恢复被移除集群的服务器实操步骤

    这篇文章主要为大家介绍了Redis恢复被移除集群的服务器实操步骤,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • Redis 中spark参数executor-cores引起的异常解决办法

    Redis 中spark参数executor-cores引起的异常解决办法

    这篇文章主要介绍了Redis 中spark参数executor-cores引起的异常解决办法的相关资料,需要的朋友可以参考下
    2017-03-03
  • Redis缓存键清理问题解决

    Redis缓存键清理问题解决

    对于使用redis作为缓存服务器的开发者而言,定期清除redis中的缓存数据是非常必要的,本文主要介绍了Redis缓存键清理问题解决,具有一定的参考价值,感兴趣的可以了解一下
    2024-06-06
  • redistemplate下opsForHash操作示例

    redistemplate下opsForHash操作示例

    这篇文章主要为大家介绍了redistemplate下opsForHash操作示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • Redis报错“NOAUTH Authentication required”两种解决方案

    Redis报错“NOAUTH Authentication required”两种解决方案

    Redis提供了一个命令行工具redis-cli,它允许你直接连接到Redis服务器,如果你知道Redis服务器的密码,你可以在连接时直接提供它,本文给大家介绍连接了Redis报错“NOAUTH Authentication required”两种解决方案
    2024-05-05

最新评论