必要なものによって異なりますが、一般的には次のように思います。
- パフォーマンスを気にしすぎてはいけません。Redis は値が小さいとコアあたりの速度が速くなりますが、memcached は、クライアントの助けなしに、単一の実行可能ファイルと TCP ポートで複数のコアを使用できます。また、memcached は、100k オーダーの大きな値でより高速です。Redis は最近、大きな値 (不安定なブランチ) に関して大幅に改善されましたが、このユース ケースでは memcached の方が高速です。ここでのポイントは、どちらも提供できる 1 秒あたりのクエリのボトルネックになる可能性が低いということです。
- メモリ使用量に注意する必要があります。単純なキーと値のペアの場合、memcached の方がメモリ効率が高くなります。Redis ハッシュを使用すると、Redis のメモリ効率が向上します。ユースケースによります。
- Redis でのみ利用可能な 2 つの機能である永続性とレプリケーションに注意する必要があります。キャッシュを構築することが目標であっても、アップグレードまたは再起動後もデータが残っていると役に立ちます。
- 必要な操作の種類に注意する必要があります。Redis には複雑な操作がたくさんあります。キャッシングのユースケースを考えただけでも、クライアント側でデータを処理する必要なく、1 回の操作でより多くの操作を実行できることがよくあります (多くの I/O が必要になる場合があります)。この操作は、多くの場合、プレーンな GET および SET と同じくらい高速です。したがって、GET/SET だけでなく、より複雑なものが必要な場合は、Redis が大いに役立ちます (タイムライン キャッシングを考えてください)。
ユースケースなしで今すぐ選ぶのは難しいですが、多くの場合、Redis は DB として使用したくない場合でも理にかなっていると思います。より多くの機能があれば、より多くの問題を解決できます。キャッシングだけでなく、メッセージング、ランキングなども含まれます。
Ps もちろん、私は Redis プロジェクトの主任開発者であるため、偏見を持っている可能性があります。