使用springboot连接拒绝Redis主从

时间:2019-02-15 21:51:58

标签: spring-boot redis

我在端口3824(主机)和3825(从机)上设置了一个主从机。但是,当我关闭主服务器时,读取操作会给出拒绝连接的异常。下面是我的配置。我如何确保即使我杀死了主人,我仍在从奴隶那里读书。我在哪里出错了?

 #include <stdio.h>
 #include <iostream>
 #include <vector>

 template <size_t B, size_t N, typename T = char>
 class Number
 {
   private:
     std::vector<T>* v[N];
     int toBase(int valor);

   public:
     Number(int valor);
     Number <B,N,T> suma(const Number<B,N,T>& sumando) const;
    //ostream& write(ostream& os)const;
 };

 template <size_t B, size_t N, typename T>
 Number<B,N,T>::Number(int valor)
 {
   toBase(valor);
 }


 template <size_t B, size_t N, typename T>
 int Number<B,N,T>::toBase(int valor)
 {
    for(int i = 0; i < N; i++) {
     int aux = valor % B;
     v.push_back(aux); // PROBLEM HERE
   }
 }

  template <size_t B, size_t N, typename T>
  Number<B,N,T> Number<B,N,T>::suma(const Number<B,N,T>& sumando) const
  {
    //sumando.toBase();
  }

1 个答案:

答案 0 :(得分:0)

要在应用程序中支持高可用性,您可能需要实现redis-sentinel

Redis Sentinel在传递给RedisSentinelConfiguration时充当应用程序和运行在一组服务器中的redis主从节点的桥。

它将主要充当配置提供程序。如果发生故障转移,Sentinels将报告新地址

Spring Data Redis Sentinel Support

/**
 * Lettuce
 */
@Bean
public RedisConnectionFactory lettuceConnectionFactory() {
  RedisSentinelConfiguration sentinelConfig = new RedisSentinelConfiguration()
  .master("mymaster")
  .sentinel("127.0.0.1", 26379)
  .sentinel("127.0.0.1", 26380);
  return new LettuceConnectionFactory(sentinelConfig);
}

在主设备发生故障事件时,当从设备升级为主设备时,所有写请求都将路由到新选举的主设备。