Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

O redis de dados do Spring substitui o serializador padrão


Você provavelmente já o resolveu enquanto isso, mas para mais buscadores de respostas.

De acordo com a referência redis de dados da primavera:

Por padrão, RedisCache e RedisTemplate são configurados para usar serialização nativa Java.

No stacktrace, posso ver que você está realmente usando o Redis para armazenamento em cache, então você precisa configurar o RedisCache e não RedisTemplate . RedisCache não está pegando seu @Bean porque não está usando RedisTemplate internamente.

Exemplo de como você pode fazer isso em 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)));
        }

    }