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