sql >> Databasteknik >  >> NoSQL >> Redis

Torkar upp en generisk RedisTemplate våren 4

Jag hade samma problem. Du kan skapa en generisk böna för detta och använda GenricJackson2JsonRedisSerializer. Problemet är att genom att använda detta kommer json att sparas med lite extra data för att deserialiseringen ska fungera senare.

Ett annat sätt skulle vara att använda Jackson2JsonRedisSerializer men den behöver Class-instansen av den generiska typen för att fungera, vilket jag inte kunde ta reda på hur man skaffar.

@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;
}

Användning på cacheklass:

@Autowired
@Qualifier("objectRedisTemplate")
private RedisTemplate<String, MyTypeA> redisTemplate;



  1. Hur ringer man BGSAVE från BookSleeve?

  2. Hur anropar man funktionen efter att ha slutfört asynkrona funktioner inuti loopen?

  3. Rescue Timeout::Fel från Redis Gem (Ruby)

  4. Mongoose &unikt fält