MemcachedはRedisと比較して恐竜ですか? [閉まっている
-
03-10-2019 - |
質問
私は最後の数週間、Memcachedとかなり働きましたが、Redisについて知りました。私が彼らのreadmeのこの部分を読んだとき、私は突然胃の中で温かく居心地の良い感じをしました:
Redisは、メモリドと同じくらい高速であるが、多くの機能があるため、ステロイドにmemcachedとして使用できます。 Memcachedと同様に、Redisはキーへのタイムアウトの設定もサポートしているため、特定の時間が経過するとこのキーが自動的に削除されます。
これは驚くべきことです。ベンチマークでこのページも見つけました。 http://www.ruturaj.net/redis-memcached-tokyo-tyrant-mysql-comparison
だから、正直なところ - Memcacheは、Redisと呼ばれるこの新人と比較した場合、パフォーマンスの観点から悪い選択である古いディノサウルスですか?
私は以前にRedisについて多くのことを聞いていなかったので、私の質問へのアプローチがあります!
解決
Memcacheはまだ優れたツールであり、非常に信頼性が高くなります。
この問題を見ると、WHOが100ミリ秒未満の範囲でより速くなるという観点から見るのではなく、ソフトウェアの「クラスごとのパフォーマンス」を見てください。
- ローカルラムのみを使用していますか? - >最速
- リモートラムを使用していますか? - >速い
- Ram Plus Hardddisk-> Oh Hurmを使用しますか。
- harddiskのみを使用しますか - > run!
他のヒント
あなたが必要とするものに依存します、一般的に私はそう思います:
- パフォーマンスについてあまり気にしないでください。 Redisは小さい値でコアごとに速くなりますが、Memcachedは、クライアントのヘルプなしで、単一の実行可能ファイルとTCPポートを備えた複数のコアを使用できます。また、Memcachedは、100kの順に大きな値でより速くなります。 Redisは最近、大きな値(不安定なブランチ)について大幅に改善しましたが、このユースケースではMemcachedがより速くなりました。ここでのポイントは、どちらかまたは他方が、彼らが提供できる秒あたりのクエリのボトルネックになる可能性があります。
- メモリの使用量を気にする必要があります。 Memcachedの単純なキー価値ペアの場合、メモリ効率が高くなります。 Redisハッシュを使用すると、Redisはよりメモリ効率が高くなります。ユースケースに依存します。
- Redisでのみ利用可能な2つの機能があります。キャッシュを構築することが目標であっても、アップグレードまたは再起動後、データがまだそこにあることが役立ちます。
- 必要な操作の種類を気にする必要があります。 Redisでは、キャッシングのユースケースを考慮しているだけでも、多くの複雑な操作があります。多くの場合、1回の操作でさらに多くのことを行うことができます。この操作は、多くの場合、プレーンゲットとセットと同じくらい速いです。したがって、取得/セットだけでなく、より複雑なものがRedisが大いに役立つ可能性がある場合(タイムラインキャッシュで考えてください)。
ユースケースがなければ今は選ぶのは難しいですが、DBとして使用したくない場合でも、より多くの問題を解決できることができるので、Redisは理にかなっていると思います。キャッシュだけでなく、メッセージング、ランキングなどもあります。
PSもちろん、私はRedisプロジェクトのリード開発者であるため、偏見があります。
だから、正直なところ - Memcacheは、Redisと呼ばれるこの新人と比較した場合、パフォーマンスの観点から悪い選択である古いディノサウルスですか?
- その後、機能を比較します
Redis
より多くの機能があります。 - インストールの容易さを比較します
Redis
また、はるかに簡単です。依存関係は不要です。 - アクティブな開発の比較
Redis
また、より良いです。 - 私は信じている
memcached
少し速いですRedis
. 。ディスクにまったく触れません。 - 私の意見はそれです
Redis
より良い製品ですmemcached
.
Redisが行わないことをMemcachedしていることは、キャッシュからの価値の不利になった立ち退きです。 Memcachedを使用すると、好きなだけ多くの値を設定でき、それらがメモリをオーバーフローすると、最近使用していないものが削除されます。 Redisを使用すると、すべてにタイムアウトを設定することによって、これを概算することしかできません。メモリを解放する必要がある場合、3つのランダムキーを見て、期限切れに最も近いキーを削除します。
キャッシュとして使用しているだけの場合、それが主な違いです。
また、メンバーを見たいかもしれません。
http://www.northscale.com/products/membase_server.html
私はそれを使用していませんが、それは永続性のあるメモリ中心のKVストアであるという点で、Redisに似ているようです。私が見ることができるものとの大きな違いは次のとおりです。
- Redisには、データ操作機能が大幅に増えています(注文セットなど)
- Redisには、水平方向のスケーラビリティを追加する保留中のRedisクラスタープロジェクトがあります
Redisには、LRUとオブジェクトのサイズの両方を考慮するハイブリッドアルゴリズムに基づいて、Disk(VM)をオフロードするデータの単一層があります。
MembaseはMemcached Wire Protocolを使用します - 既存のアプリケーションのアップグレードパスとして役立ちます
- Membaseは、分散ハッシュテーブルアプローチを使用して水平方向にスケーリングするように設定されています
- Membaseは、LRUアプローチを使用して複数のデータオフロードをサポートできます(Diskには非常にめったに使用されません。
- MembaseのTTL機能についてはわかりません。
選択は、アプリケーションがRedisの追加のデータ操作機能を活用できる程度に依存する場合があります。
Hazelcastは、Memcached Protocolをネイティブにサポートしています
したがって、Memcachedに代わる現代の代替品です。すべてのソリューションを試して、自分に最適なものを確認する必要があります。