Redis vs Zookeeper


25

これら2つのサーバーが非常に異なるものを対象としていることを考慮して、これら2つのサーバーを比較するのはばかげているようです。しかし、考えてみると、構成データの保存、分散ロック、キューイングなど、多くの類似したことができます。

私はいくつかの生産関連のことのために使用しているRedisのインスタンスを持っていますが、サーバー間でいくつかの簡単な同期を行いたいと思います(主にコードを押し上げたりサーバー間で簡単なロックを必要としない構成変更)。Zookeeperは、Redisが提供しないことを何を提供してくれますか?


Redisは(具体的に)設定用ではありません。それらは全く異なる製品です。
ラインヘンリヒス

4
どうして?設定にはPostgreSQLを使用しています。構成とビジネスロジックの違いは何ですか?
ドミトリーネゴダ

回答:


26

RedisとZookeeperの両方を職場で使用しているので、これは実際の体験からです

Redisは高速です。本当に、本当に速い。また、すぐに一貫性があるため、高速で移動するデータセットに適しています。欠点は、1台のサーバーで実行している場合、失敗すると、別のサーバーがその場所を取得するまで書き込みアクセスが失われることです。サーバーの交換は、自分で自動化しない限り、手動操作です。(スレーブインスタンスを設定すると、データへの読み取りアクセスを取得できます)。

Zookeeperは、すぐに一貫性も備えています。半分ほど速くはありませんが、障害が発生した場合は(可能な場合)自動的に回復するため、継続的な書き込みアクセスが必要な場合は、サーバーで障害が発生しても、Zookeeperを使用する必要があります。

私のアドバイスは、調整にzookeeperを使用することです。どのノードがアクティブであるかを追跡する、グループ間でリーダーを選出するなどです。たとえば、Webページのヒットカウンター。


私は現在プロジェクトに取り組んでおり、動物園飼育係が進むべき道になると考えていました。どこかで共有できる情報があれば、すばらしいでしょう。複数のアドエクスチェンジを処理し、1日あたり約40億件以上のイベントを追跡しています。フロントエンドサーバーの再設計を検討しており、追跡カウント、最小重み付けなどに関する情報を保存するためにzookeeperを探していました。redisの速度は証明できますが、私の経験ではzookeeperで使用する階層構造がありません。2012年から3年でスタンスは変わりましたか?
クリスヒンショー

@ChrisHinshaw私は同じ問題に直面しています。分散ロックとパフォーマンスの両方を必要とする分散リソースマネージャーとして、RedisとZookeeperの両方を検討します。フィードバックはありますか?
ラファエルサライバ

私は今これの書き直しを終えています。私はスピードのためにredisを使いました。zookeeperにはパフォーマンスの問題がいくつかありましたが、その問題を思い出せません。メトリックとカウントに基づいて時系列データを保存しています。luaスクリプトを使用して、各期間のカウントを更新し、呼び出しの数を制限しています。例として、br:1:2:3:4の形式の入札リクエストのハッシュキーがあります。ここで、数字はmetric:agency:advertiser:campaign:adの階層を表します。ハッシュでは、値は年:月:日:時:分です。私のluaスクリプトでは、それぞれのカウントを更新します
クリスヒンショー

タイムスライスの。したがって、スクリプトはy:m:d:hをコロンで分割し、各スライスの合計を更新します。このようにして、hscanを使用したり、任意のタイムスライスのキーのリストを取得したりできます。redisで最も重要なことは、キーの階層モデルを作成することです。将来のある時点で、このすべてを動かして、カッサンドラストアでrddに火をつけたいと思います。時間があれば、スパークストリーミングを実装してベンチマークを行います。redisと同等であり、分析を行う柔軟性を提供すると思います。
クリスヒンショー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.