Redis
 sql >> Datenbank >  >> NoSQL >> Redis

SpringBoot Elasticache JedisMovedDataException:VERSCHIEBEN

Sie führen Elasticache im Redis-Cluster-Modus aus (nur Redis-Cluster antwortet mit MOVED ), aber die Verbindungsfactory ist im eigenständigen Modus konfiguriert.

Spring Boot kann alle Dinge, die Sie manuell für Sie eingerichtet haben, automatisch konfigurieren. Entfernen Sie grundsätzlich Ihre CacheConfiguration class (oder zumindest den größten Teil des Codes entfernen):

@Configuration
public class CacheConfiguration {

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

Konfigurieren Sie dann die folgenden Eigenschaften in Ihrer application.properties Datei:

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

Spring Boot lädt application.properties standardmäßig und die automatische Redis-Konfiguration konfiguriert ein RedisTemplate<Object, Object> Bohne standardmäßig. Das Spezialisieren von Beans ist ein gültiger Anwendungsfall – duplizieren Sie nicht, was bereits von der automatischen Konfiguration bereitgestellt wird, insbesondere wenn Sie erreichen möchten, was die automatische Konfiguration bewirkt.

Siehe auch:

  • Allgemeine Anwendungseigenschaften
  • Externalisierte Konfiguration