【问题标题】:How to serialize multiple types in Spring Redis Cache?如何在 Spring Redis Cache 中序列化多种类型?
【发布时间】:2015-04-04 21:17:47
【问题描述】:

RedisCacheManager 只需要一个 RedisTemplate,这意味着它只能序列化单一类型的对象。

既然我有多种类型的对象要序列化,我该怎么做呢?

【问题讨论】:

    标签: java spring spring-data spring-data-redis


    【解决方案1】:

    如果您的 CacheManager 是由 Java 代码创建的。 new RedisTemplate() 应该用于支持多种类型。
    默认情况下,org.springframework.data.redis.core.RedisTemplate 使用 JdkSerializationRedisSerializer 将 Java 对象转换为字节,然后将它们存储到 Redis 服务器中。 支持Java类实现java.io.Serializable接口。

    也可以指定其他Serializers,例如:

    XStreamMarshaller xstream=new XStreamMarshaller();//org.springframework.data.redis.serializer.XStreamMarshaller
    xstream.afterPropertiesSet();
    //set serializer for all Redis type - convert object to XML string
    redisTemplate.setDefaultSerializer(new OxmSerializer(xstream, xstream));
    //set serializer for Redis key type
    //redisTemplate.setKeySerializer(new StringRedisSerializer());
    //set serializer for Redis value type 
    //redisTemplate.setValueSerializer(new OxmSerializer(xstream, xstream));
    

    【讨论】:

      猜你喜欢
      • 2015-09-25
      • 2020-01-10
      • 1970-01-01
      • 1970-01-01
      • 2019-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多