それは特定のユースケースに大きく依存します。 ID以外の何かでドキュメントをクエリできるようにしたい場合は、Redisを選択しないでください。 Redisを使用すると、独自のインデックススキームを実装する必要がありますが、それは不要です。
実際、Redisがあなたのユースケースに適していると思うケースはほとんどありません(Redisに問題があるわけではなく、RedisとMongoの両方を使用することがよくありますが、さまざまな用途に使用されます)。ハッシュとして表現できるオブジェクトがあるように思えます。 MongoとRedisはどちらもハッシュを保存できますが、Mongoはさらに多くのことを実行できます。 Mongoを使用すると、任意のフィールドでドキュメントを検索したり、インデックスを追加して高速化したりできます。フィールドは文字列である必要はなく、数値、日付、リスト、さらにはドキュメントでもかまいません。 (またはドキュメントのリスト)、およびすべてのドキュメントがRAMに収まる必要はありません(ただし、Redisのディスクストア機能が終了すると変更されます)。 Redisにはそのようなものはありません。検索できるようにするには、インデックスを自分で実装する必要があります。文字列以外は保存できず(これは非常に不便な場合があります)、フラットハッシュ以外は保存できません(何らかのマッピングを実装または使用する必要があります)。オームのようなレイヤー)。
スピードについても言及します。 Redisは非常に高速であり、Mongoも悪くはありませんが、Mongoを使用するユースケースの方が速い場合があります。 使用と言っていることに注意してください モンゴ、モンゴ自体が速いというわけではありません。問題は、Redisを使用していて、主キーではないフィールドを使用してドキュメントを検索できるようにしたい場合は、前述のように、これを自分で実装する必要があるということです。その場合、検索では、Redisに対して少なくとも2つのリクエストを行う必要があります。1つはインデックスの検索用で、もう1つはドキュメントの取得用です。検索結果に複数のドキュメントが含まれる場合は、ドキュメントごとに個別にリクエストする必要があります。これらすべてのリクエストを行うオーバーヘッドは、おそらくRedisの使用をMongoの使用よりも悪くするでしょう。私の経験では、最も単純なキャッシュ、キュー、または同様のもの以外のものは、必要なものすべてを取得するためにRedisに複数のリクエストを行う必要があります。
ですから、情報が限られているので、MongoDBをお勧めします。