私は先週、memcachedでかなりの作業をし、Redisについて知りました。彼らのreadmeのこの部分を読んだとき、私は突然私の胃の中に温かく居心地の良い感覚を得ました:
Redisは、ステロイドのmemcachedとして使用できます。これは、memcachedと同じくらい高速ですが、さらに多くの機能を備えているためです。 memcachedと同様に、Redisはキーにタイムアウトを設定することもサポートしているため、一定の時間が経過するとこのキーは自動的に削除されます。
これはすごいですね。このページにはベンチマークもありました: http://www.ruturaj.net/redis-memcached-tokyo-tyrant-mysql-comparison
それで、正直なところ-memcacheは、Redisと呼ばれるこの新人と比較して、パフォーマンスの観点から悪い選択である本当に古い恐竜ですか?
私は以前Redisについてあまり聞いたことがないので、私の質問に対するアプローチです!
Memcacheは依然として優れたツールであり、非常に信頼性があります。
100ミリ秒未満の範囲で誰が速いかという観点からこの問題を見る代わりに、ソフトウェアの「クラス」ごとのパフォーマンスを見てください。
必要なものに依存しますが、一般的には次のように思います:
ユースケースなしで今すぐに選ぶのは難しいですが、DBとして使用したくない場合でも、Redisが理にかなっている多くのことについて、より多くの問題を解決できるので、キャッシュだけでなく、メッセージング、ランキングなども含まれます。
追伸もちろん、私はRedisプロジェクトの主任開発者なので、偏見を抱く可能性があります。
それで、正直なところ-memcacheは、Redisと呼ばれるこの新人と比較して、パフォーマンスの観点から悪い選択である本当に古い恐竜ですか?
Redis
にはさらに多くの機能があります。Redis
も非常に簡単です。依存関係は必要ありません。Redis
も優れています。memcached
はRedis
よりも少し速いと思います。ディスクにはまったく触れません。Redis
はmemcached
よりも優れた製品です。Redisが行わないmemcachedが行うことは、キャッシュからの値の最も最近使用されないエビクションです。 memcachedを使用すると、必要な数だけ安全に設定でき、メモリがオーバーフローすると、最近使用していない値が削除されます。 Redisでは、すべてにタイムアウトを設定することによってのみこれを概算できます。メモリを解放する必要がある場合、3つのランダムキーを調べて、期限切れに最も近いキーを削除します。
キャッシュとして使用している場合、それが主な違いです。
Membaseをご覧になることもできます。
http://www.northscale.com/products/membase_server.html
使用していませんが、永続性を備えたメモリ中心のKVストアであるという点でRedisに似ているようです。私が見ることができるものとの主な違いは次のとおりです。
Redisには、LRUとオブジェクトのサイズの両方を考慮するハイブリッドアルゴリズムに基づいて、ディスクへのデータオフロード(VM)の単一層があります。
Membaseはmemcachedワイヤプロトコルを使用します-既存のアプリケーションのアップグレードパスとして役立ちます
選択は、アプリケーションがRedisの追加のデータ操作機能をどの程度活用できるかによって異なります。
Hazelcastはmemcachedプロトコルをネイティブにサポートします
したがって、memcachedの最新の代替手段です。すべてのソリューションを試して、最適なものを確認してください。