Redis
 sql >> Base de données >  >> NoSQL >> Redis

SpringBoot Elasticache JedisMovedDataException :MOVED

Vous exécutez votre Elasticache en mode Redis Cluster (seul Redis Cluster répond avec MOVED ) mais la fabrique de connexions est configurée en mode autonome.

Spring Boot peut configurer automatiquement toutes les choses que vous avez configurées manuellement pour vous. Fondamentalement, supprimez votre CacheConfiguration class (ou au moins supprimer la majorité du code) :

@Configuration
public class CacheConfiguration {

  @Bean
  public RedisTemplate<String, Company> redisTemplate(RedisConnectionFactory connectionFactory) {
      RedisTemplate<String, Company> template = new RedisTemplate();
      template.setConnectionFactory(connectionFactory);
      return template;
  }
}

Et puis configurez les propriétés suivantes dans votre application.properties fichier :

spring.redis.cluster.nodes=<node_host>:<port> # Comma-separated list of "host:port" pairs to bootstrap from.

Spring Boot charge application.properties par défaut et la configuration automatique de Redis configure un RedisTemplate<Object, Object> haricot par défaut. La spécialisation des beans est un cas d'utilisation valide - ne dupliquez pas ce qui est déjà fourni par la configuration automatique, surtout si vous voulez réaliser ce que fait la configuration automatique.

Voir aussi :

  • Propriétés courantes de l'application
  • Configuration externalisée