2012-03-31 5 views
1

頻繁に更新されるリストを使用するアプリケーションがあります。たとえば、ボタンをクリックした人は、そのボタンに関連付けられた一意のリストに追加されます。次に、これらのリストをボタンで、降順で制限付きで表示したいと考えています。データストア用のRedisからMongoDBへのデータの永続

これは、MySQLとMemcacheを使用して行っています。問題は、これがうまくいかないことです。

私が計画しているのは、Redisリストを使用することです。各ボタンは、各ユーザーは、我々は10の最新情報を取得したい場合は、私たちが今LRANGE 0 10

を使用することができますLPUSHを使用してキーに追加されます、Redisの中にユニークな鍵を握るだろう、最終的にこれらのボタンは、「有効期限が切れていない」ともはやなります積極的に追加またはクリックすると、過去のデータが必要になります。これらの期限が切れると、アイデアはRedisからデータを取得し、MongoDBに移入します。履歴データのクエリは、MongoDBに照会されます。

誰もこの解決策を提案しませんか?このようにするのは "合理的"なのでしょうか?

ありがとうございました!

答えて

2

このソリューションは意味があります。私はアプリで同様のことをしています。しかし、注意すべき

一つのこと:

をしたがって、たとえば、ボタンをクリックするすべての人は、そのボタンに関連付けられた一意のリストに追加されます。

このリストに重複したユーザーを許可しますか?はいの場合は、リストを使用してください。そうでない場合は、set(一意のチェック用)と組み合わせて使用​​することもできますが、RAMを必要とします。

+0

OPにさらに説明することが重要な点は、期限が切れたときにRedisからMongoDBにアイテムを転送する方法です。 Redisでアイテムが期限切れになったときには、直接通知することはできません。 –

+0

@DidierSpezia:質問に「期限切れ」が引用されていることに注意してください。これは、アイテムが期限切れになったときを決定するアプリケーションであることを(私に)示唆しています。この時点で、データをmongoに転送することもできます。 –

+0

ありがとう!はい、有効期限はアプリで処理されます。ボタンが期限切れになると、アプリはこれを知り、データをredongからmongoにコピーしてから削除します。リストには重複したユーザーも存在する可能性があるため、リストは良好でなければなりません。 – dzm

関連する問題