美文网首页
Redisson配置Codec等

Redisson配置Codec等

作者: Master大屎 | 来源:发表于2024-02-22 14:42 被阅读0次

    Redisson集成进入到项目后,默认使用的是
    <code>org.redisson.codec.MarshallingCodec</code>编码器,此编码器跟操作系统的编码有关,会导致不同的服务器存储的内容编码不一致,直接报错,因此需要选择其他的编码器.Redisson默认的编码器如下:
    参考官方文档 https://github.com/redisson/redisson/wiki/4.-Data-serialization

    Codec class name Description
    org.redisson.codec.Kryo5Codec Kryo 5 binary codec(Android compatible) Default codec
    org.redisson.codec.KryoCodec Kryo 4 binary codec
    org.redisson.codec.JsonJacksonCodec Jackson JSON codec.Stores type information in @class field (Android compatible)
    org.redisson.codec.TypedJsonJacksonCodec Jackson JSON codec which doesn't store type id (@class field) during encoding and doesn't require it for decoding
    org.redisson.codec.AvroJacksonCodec Avro binary json codec
    org.redisson.codec.ProtobufCodec Protobuf codec
    org.redisson.codec.SmileJacksonCodec Smile binary json codec
    org.redisson.codec.CborJacksonCodec CBOR binary json codec
    org.redisson.codec.MsgPackJacksonCodec MsgPack binary json codec
    org.redisson.codec.IonJacksonCodec Amazon Ion codec
    org.redisson.codec.SerializationCodec JDK Serialization binary codec (Android compatible)
    org.redisson.codec.LZ4Codec LZ4 compression codec.Uses Kryo5Codec for serialization by default
    org.redisson.codec.LZ4CodecV2 LZ4 Apache Commons compression codec.
    Uses Kryo5Codec for serialization by default
    org.redisson.codec.SnappyCodecV2 Snappy compression codec based on snappy-java project.
    Uses Kryo5Codec for serialization by default
    org.redisson.codec.MarshallingCodec JBoss Marshalling binary codec
    Deprecated!
    org.redisson.client.codec.StringCodec String codec
    org.redisson.client.codec.LongCodec Long codec
    org.redisson.client.codec.ByteArrayCodec Byte array codec
    org.redisson.codec.CompositeCodec Allows to mix different codecs as one

    项目中,采用的是redisson-spring-boot-starter集成,也引入了spring-data-redis,参考官方配置https://github.com/redisson/redisson/tree/master/redisson-spring-boot-starter
    本项目为了不打破原有的redis配置,并未采用spring.redis.redisson这种配置,而是手动增加了redisson中提供的额外配置接口,实现此接口并注册成为bean后,可以直接设置额外的redisson配置

    import org.redisson.config.Config;
    import org.redisson.spring.starter.RedissonAutoConfigurationCustomizer;
    import org.springframework.stereotype.Component;
    
    @Component
    public class YourRedissonAutoConfigurationCustomizer implements RedissonAutoConfigurationCustomizer {
    
        @Override
        public void customize(Config cfg) {
            //cfg.setCodec(new org.redisson.codec.FstCodec());
            cfg.setCodec(new org.redisson.codec.SerializationCodec());
        }
    
    }
    
    

    包括NameMapper也可以通过此方法来配置。原理可以查看<code>RedissonAutoConfiguration</code>实现代码

    相关文章

      网友评论

          本文标题:Redisson配置Codec等

          本文链接:https://www.haomeiwen.com/subject/ypfgadtx.html