开发者

redis通用配置类的使用详解

开发者 https://www.devze.com 2025-08-04 09:00 出处:网络 作者: 天珩
目录Redis通用配置类原理看string()方法总结redis通用配置类 作用 处理Springboot使用 RedisTemplate过程中的编码问题
目录
  • Redis通用配置类
    • 原理
    • 看string()方法
  • 总结

    redis通用配置类

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

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

    redis通用配置类的使用详解

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

    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中管理的be编程an
        public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory)
                throws UnknownHostException {
            RedisTemplate<Object, Object> template = new RedisTemplate<>();
    
      http://www.devze.com      //ObjectMapper 指定在转成json的时候的一些转换规则
            ObjectMapper objectMapper = new ObjectMapper();
            objectMapper.setDateFormat(new Simp编程leDateFormat("yyyy-MM-dd HH:mm:ss"));
    
            template.setConnectionFactory(redisConnectionFactory);
            Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
            //把自定义objectMapper设置到javascriptjackson2JsonRedisSerialqrXdQikkFaizer中(可以不设置,使用默认规则)
            jackson2JsonRedisSerializer.setObjectMapper(objectMapper);
    
            //RedisTemplate默认的序列化方式使用的是JDK的序列化
            //设置了key的序列化方式
            template.setKeySerializer(new StringRedisSerializer());
            //设置了value的序列化方式
            template.setValueSerializer(jackson2JsonRedisSerializer);
            return template;
        }
    }
    
    

    原理

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

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

    redis通用配置类的使用详解

    看string()方法

    redis通用配置类的使用详解

    redis通用配置类的使用详解

    转成了byte[] bytes

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

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

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

    0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    关注公众号