Eu tive o mesmo problema. Você pode criar um bean genérico para isso e usar o GenricJackson2JsonRedisSerializer. O problema é que usando isso o json será salvo com alguns dados extras para que a desserialização funcione mais tarde.
Outra maneira seria usar o Jackson2JsonRedisSerializer, mas ele precisa da instância Class do tipo genérico para funcionar, o que não consegui descobrir como obter.
@Bean("objectRedisTemplate")
public <T> RedisTemplate<String, T> objectRedisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, T> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(redisConnectionFactory);
RedisSerializer<String> serializer = new StringRedisSerializer();
redisTemplate.setKeySerializer(serializer);
redisTemplate.setHashKeySerializer(serializer);
redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
return redisTemplate;
}
Uso na classe de cache:
@Autowired
@Qualifier("objectRedisTemplate")
private RedisTemplate<String, MyTypeA> redisTemplate;