2016-08-25 8 views
0

システムに非同期処理を導入する必要があります。要求が発生したときにバックグラウンドジョブを開始し、後で結果をポーリングするURLで応答します。処理自体は数分を超えてはいけません。その結果は30分程度保管しておいてください。処理を再現することはコストがかかる可能性があるため、ストレージの停止による結果の損失の可能性を低減する必要があります。非同期処理の有効期限を持つRedisとMongoDB

私は結果を保存するためにRedisとMongo(TTL indexを使用)の利点を評価しています。

システムはすでに両方を使用しているため、どちらの場合でも新しいテクノロジを導入するための追加コストはかかりません。 Redisの場合、データ損失の可能性を減らすために、AOF persistenceを使用するように設定しなければならないことを理解しています。これは、他のRedisの使用例(キャッシュなど)に対して少しのパフォーマンス上のペナルティを意味します。

私はパフォーマンスよりもデータの完全性に関心があります。私は両方のオプションがうまくいくはずであると理解しています。この特定のユースケースに適しているのか、将来的に私の運用上の問題が発生する可能性が高いのでしょうか。

答えて

0

あなたの場合、RedisはMongoDBよりも良い選択です。上記の状況は、有効期限まで結果を保持するリーダーボードに似ています。キャッシュ層はおそらくレディスで実装するほうが良いでしょうし、スキーマ可能なデータがあればMongoDBが良いかもしれません。

処理されたジョブの結果を格納するには、キャッシュが必要です。

関連する問題