sql >> Base de Datos >  >> NoSQL >> Redis

Spring data redis anula el serializador predeterminado

Probablemente lo hayas resuelto mientras tanto, pero para más buscadores de respuestas.

De acuerdo con la referencia redis de datos de primavera:

De forma predeterminada, RedisCache y RedisTemplate están configurados para usar la serialización nativa de Java.

Desde stacktrace puedo ver que en realidad está usando Redis para el almacenamiento en caché, por lo que debe configurar RedisCache y no RedisTemplate . RedisCache no está recogiendo su @Bean porque no está usando RedisTemplate internamente.

Ejemplo de cómo puedes hacerlo en Java:

    @EnableCaching
    @Configuration
    public class CacheConfig {

        @Bean
        @Primary
        public RedisCacheConfiguration defaultCacheConfig(ObjectMapper objectMapper) {
            return RedisCacheConfiguration.defaultCacheConfig()
                .serializeKeysWith(SerializationPair.fromSerializer(new StringRedisSerializer()))
                .serializeValuesWith(SerializationPair.fromSerializer(new GenericJackson2JsonRedisSerializer(objectMapper)));
        }

    }