検索

ホームページ  >  に質問  >  本文

做Redis集群的时候,可不可以将Master实例和Slave实例放在一个主机当中?

线上的实际情况是总共有4台服务器。现在主要用的是memcache,并且目前只用了61M左右的内存空间。公司的需求是逐步把整个网站的缓存迁移到redis。

目前的想法是拿3台服务器拿来做集群,每台服务器配置一个Master实例。为了实现高可用,还需要给每台服务器配置一个Slave实例。我想问的是,可不可以将Master实例和Slave实例配置到一个主机当中,以及这样配置所带来的影响?

还有一种想法是,只用2台服务器,1台服务器运行3个Master实例,另一台服务器运行3个Slave实例。大家还有更好的解决方案吗?

还听他们说,集群的话至少要有3个主节点。用2个主节点不行吗?

PHP中文网PHP中文网2848日前991

全員に返信(5)返信します

  • 过去多啦不再A梦

    过去多啦不再A梦2017-04-25 09:05:24

    マスターとスレーブを同じマシンに配置すると、問題が発生します:

    1. 実行時にマスターとスレーブの両方がメモリを占有する必要があり、マシンのメモリが十分ではない可能性があります

    2. マシンがダウンしているか、電源がオフになっているか、ネットワークが切断されている場合、マスターとスレーブの高可用性は得られません。

    マスターとスレーブを別のマシンに配置するのが最善です。

    なぜ2ではなく3なのかというと。これはクラスター選挙中の最良の戦略です。 Redis3.0 はクラスターのサポートを開始します。

    一般に、クラスターが特定の公開状態について合意に達するには、クラスター内の Redis インスタンスの半分以上が同意する必要があります。
    なぜ過半数が必要なのでしょうか? クラスター内のスプリットブレイン、つまりネットワーク分割の状況を考慮する必要があるためです。
    ネットワークがどのように分離されているかに関係なく、過半数があれば、ネットワークがどれほど分離されているかに関係なく、大規模クラスターがいくつの小規模クラスターに分離されているかに関係なく、サービスを提供できる小規模クラスター内の少なくとも 1 つのインスタンス (インスタンスの半分以上を意味します) が最新のステータス情報と同期されます。

    上記を理解した上で半分以上を話して、なぜ奇数なのか
    偶数について話しましょうたとえば、4 つのインスタンスからなるクラスターの場合、3 が過半数になります。
    しかし、なぜ奇数が依然として最高なのでしょうか?
    クラスターに 5 つのインスタンスがある場合、2 つのインスタンスのクラッシュのみ許容できます。
    クラスター内に 6 つのインスタンスがある場合、2 つのインスタンスのクラッシュしか許容できません。
    同じ許容範囲の下で、6 と 5 の違いは何ですか:

    • クラスターは相互に通信する必要があるため、インスタンスが増えるほど、ネットワークのオーバーヘッドが大きくなります

    • インスタンスが多いほど、インスタンスが 5 つある場合、インスタンスが 6 つある場合よりも 3 つのインスタンスがクラッシュする確率は低くなります。

    だからもちろん奇数が最も費用対効果が高いです。

    返事
    0
  • 習慣沉默

    習慣沉默2017-04-25 09:05:24

    別のポートを設定するだけで可能です。影響については、特に影響はないと思います。

    返事
    0
  • PHP中文网

    PHP中文网2017-04-25 09:05:24

    マシンが 3 台ある場合、卵を 1 つのバスケットに入れるのではなく、それぞれがマスターを実行し、それぞれのスレーブを別のマシンに配置してリング バックアップを形成します。
    IP リソースが十分な場合は、高可用性を提供する ha ミドルウェアを見つけてください。

    返事
    0
  • 怪我咯

    怪我咯2017-04-25 09:05:24

    実稼働環境を同じ物理マシンに配置することはお勧めできません。 3 つのマスターを持つクラスターは 3.0 クラスターについて話しています。ノードの数が奇数であれば、投票によって確実に特定の結果が得られます

    返事
    0
  • 仅有的幸福

    仅有的幸福2017-04-25 09:05:24

    それでは、スレーブを別の場所に置きます。

    このデザインについてどう思いますか?

    返事
    0
  • キャンセル返事