Déclarez une classe de sérialisation qui gère un certain type (BaseCurrentUser)
@Bean
Jackson2JsonRedisSerializer<BaseCurrentUser> jackson2JsonRedisSerializer(ObjectMapper objectMapper) {
Jackson2JsonRedisSerializer<BaseCurrentUser> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<BaseCurrentUser>(
BaseCurrentUser.class);
jackson2JsonRedisSerializer.setObjectMapper(objectMapper);
return jackson2JsonRedisSerializer;
}
@Bean
RedisTemplate<String, BaseCurrentUser> currentUserRedisTemplate(JedisConnectionFactory connectionFactory,
Jackson2JsonRedisSerializer<BaseCurrentUser> jackson2JsonRedisSerializer) {
RedisTemplate<String, BaseCurrentUser> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(connectionFactory);
redisTemplate.setDefaultSerializer(jackson2JsonRedisSerializer);
StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
redisTemplate.setKeySerializer(stringRedisSerializer);
redisTemplate.setHashKeySerializer(stringRedisSerializer);
return redisTemplate;
}
Utilisé en classe de service
@Autowired
private RedisTemplate<String, BaseCurrentUser> currentUserRedisTemplate;
Donc, chaque fois que j'ajoute un type de stockage, je dois ajouter un ensemble de @Bean ??? Est-ce vrai ? Ou je ne sais pas comment l'utiliser
Ou je ne l'utilise pas de cette façon, je ? utilisez uniquement son StringRedisTemplate et utilisez fastjson manuellement à chaque fois en sérialisation
Configurez Redis (y compris le clustering et la sérialisation) en .xml, injectez RedisTemplate dans la classe et utilisez le rappel asynchrone pour faire fonctionner Redis (ou opérer directement)
RedisModèle