2016-03-18 15 views
0

Redisに保存されているモデルには、startdateとenddateの2つの日付フィールドがあります。すべてのデータをハッシュに挿入しました。 10K以上。 どのようにして効率的に両方の日付フィールドをパラメータとしてクエリできますか。今のところ私はdbからすべてのハッシュを取り出し、それらをデシリアライズして結果を照会します。効率的ではありませんが、テストのために働きます。これを実現する方法が不思議でした。 ありがとうRedisのハッシュを日付で照会

答えて

2

Redisはクエリ可能に設計されていません。アプリケーション層から後で必要とする方法でデータを格納する必要があります。

あなたはSTARTDATEの昇順であなたのモデルを取得したい場合たとえば、あなたがソートであなたのモデルの識別子を格納する必要は整数としてSTARTDATEを提供を設定し、それが使用されますソートされたセット項目スコアとして。

より複雑な基準を使用してモデルを作成する場合は、モデルプロパティ以外のものに基づいてスコアを計算し、他のソートセットに保存する必要があります。

これ以降、これらの順序付き識別子の範囲(、zrevrange ...)を取得して、hmgetコマンドに渡すことができます。このコマンドは、指定された識別子のすべての値を取得します。

インデックスのインデックスのようにRedisについて考える必要があります。それは効率的にデータを検索するためにデータのインデックスを作成することです。

関連する問題