RedisConfig配置类解决序列化问题

本文探讨了如何使用RedisConfig配置类解决Java应用中遇到的序列化问题,重点介绍了配置类的设置和序列化策略的选择,以确保数据在Redis中的正确存储和检索。
摘要由CSDN通过智能技术生成
package com.atguigu.srb.base.config;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;

@Configuration
public class RedisConfig {

    @Bean
    public RedisTemplate<String, Object> redisTemplate(LettuceConnectionFactory redisConnectionFactory) {

        RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();

 
Redis序列化配置主要是由以下两个组成: 1. RedisTemplate<K, V>:是Spring Data Redis模块提供的Redis操作模板,用于操作Redis数据存储。该包含了Redis序列化方式配置。 2. RedisSerializer<T>:是Redis序列化接口,用于将Java对象序列化Redis的存储格式,并将Redis存储格式反序列化Java对象。RedisSerializer的实现有很多,其中默认实现了以下几种: - JdkSerializationRedisSerializer:使用JDK自带的序列化方式(ObjectOutputStream/ObjectInputStream),将Java对象序列化为二进制格式,并存储在Redis中。 - Jackson2JsonRedisSerializer:使用Jackson库将Java对象序列化为JSON格式,并存储在Redis中。 - GenericJackson2JsonRedisSerializer:基于Jackson2JsonRedisSerializer实现,支持泛型序列化。 - StringRedisSerializer:将Java对象序列化为字符串格式(采用UTF-8编码),并存储在Redis中。 在RedisTemplate中配置RedisSerializer的方式如下: ```java @Configuration public class RedisConfig { @Bean public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) { RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>(); redisTemplate.setConnectionFactory(connectionFactory); //设置key的序列化方式 redisTemplate.setKeySerializer(new StringRedisSerializer()); //设置value的序列化方式 redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer<>(Object.class)); return redisTemplate; } } ``` 在上述配置中,我们采用了StringRedisSerializer将key序列化为字符串格式,采用Jackson2JsonRedisSerializer将value序列化为JSON格式。当然,你也可以根据需求选择其他的序列化方式。总之,通过RedisTemplate的配置,我们可以很方便地实现对Redis数据的序列化和反序列化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值