【问题标题】:Not able to Store Boolean in Spring Reactive Redis Cache无法在 Spring Reactive Redis 缓存中存储布尔值
【发布时间】:2021-05-11 14:35:42
【问题描述】:
" java.lang.IllegalStateException: Cannot serialize value of type class java.lang.Boolean without a serializer
    at org.springframework.data.redis.serializer.DefaultRedisElementWriter.write(DefaultRedisElementWriter.java:54) ~[spring-data-redis-2.3.4.RELEASE.jar!/:2.3.4.RELEASE]
    at org.springframework.data.redis.serializer.RedisSerializationContext$SerializationPair.write(RedisSerializationContext.java:287) ~[spring-data-redis-2.3.4.RELEASE.jar!/:2.3.4.RELEASE]
    at org.springframework.data.redis.core.DefaultReactiveHashOperations.rawHashValue(DefaultReactiveHashOperations.java:286) ~[spring-data-redis-2.3.4.RELEASE.jar!/:2.3.4.RELEASE]

我在存储布尔值时遇到此异常。

我的 redis 配置:

ReactiveRedisTemplate<String, Object> reactiveRedisTemplateGeneric(ReactiveRedisConnectionFactory reactiveRedisConnectionFactory) {
    GenericJackson2JsonRedisSerializer valueSerializer = new GenericJackson2JsonRedisSerializer();
    RedisSerializationContext.RedisSerializationContextBuilder<String, Object> builder =
            RedisSerializationContext.newSerializationContext(new StringRedisSerializer());
    RedisSerializationContext<String, Object> context = builder.value(valueSerializer).build();
    return new ReactiveRedisTemplate<>(reactiveRedisConnectionFactory, context);
}

【问题讨论】:

    标签: java caching reactive-programming project-reactor spring-data-redis


    【解决方案1】:

    我们还需要在构建上下文时在 hashValue 中设置序列化器。

    RedisSerializationContext<String, Object> context = builder.value(valueSerializer).hashValue(valueSerializer).build();
    

    【讨论】:

      猜你喜欢
      • 2019-09-22
      • 1970-01-01
      • 2020-02-16
      • 1970-01-01
      • 2019-06-22
      • 2010-10-25
      • 2012-03-10
      • 2022-09-23
      • 2021-12-04
      相关资源
      最近更新 更多