redis配置类(修改序列化方式)为json

在这里插入图片描述

//包自己定义
import org.springframework.boot.autoconfigure.cache.CacheProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.cache.RedisCacheConfiguration;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.RedisSerializationContext;
import org.springframework.data.redis.serializer.RedisSerializer;

/**
 * @ClassName RedisConfig
 * @Description TODO
 * @Author fa
 * @Date 2020/3/2 16:39
 */
@Configuration
public class RedisConfig {

    @Bean
    public RedisCacheConfiguration redisCacheConfiguration(CacheProperties cacheProperties) {
        CacheProperties.Redis redisProperties = cacheProperties.getRedis();
        RedisCacheConfiguration config = RedisCacheConfiguration
                .defaultCacheConfig();
        config = config.serializeValuesWith(RedisSerializationContext.SerializationPair
                .fromSerializer(new GenericJackson2JsonRedisSerializer()));
               //还有另外一种写法
        if (redisProperties.getTimeToLive() != null) {
            config = config.entryTtl(redisProperties.getTimeToLive());
        }
        if (redisProperties.getKeyPrefix() != null) {
            config = config.prefixKeysWith(redisProperties.getKeyPrefix());
        }
        if (!redisProperties.isCacheNullValues()) {
            config = config.disableCachingNullValues();
        }
        if (!redisProperties.isUseKeyPrefix()) {
            config = config.disableKeyPrefix();
        }
        return config;

    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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、付费专栏及课程。

余额充值