2017-04-17 11 views
1

IDは固有でキーとして使用し、残りはRedis Databankのハッシュ値として使用しています。私は特定の都市名を与えると私にIDのリストを返すクエリを探しています。私が尋ねる場合たとえば、私の市の名前SPRINGFIELDのすべてのIDを与えることは私に01103を返す必要がありますし、01104.Redis get Value from Key

{ "_id" : "01103", "city" : "SPRINGFIELD", "loc" : [ -72.588735, 42.1029 ], "pop" : 2323, "state" : "MA" } 

{ "_id" : "01104", "city" : "SPRINGFIELD", "loc" : [ -72.577769, 42.128848 ], "pop" : 22115, "state" : "MA" } 

{ "_id" : "01106", "city" : "LONGMEADOW", "loc" : [ -72.5676, 42.050658 ], "pop" : 15688, "state" : "MA" } 
+0

私の回答は役に立ちますか?もしあなたがそれを受け入れることができますか、またはあなたがまだ混乱している場合、私はより深く –

答えて

2

あなたがのためにハッシュ構造にマップするためにRedisの中で使用しているキーを指定しません市、私はあなたがそれがユニークだと言ったので、IDを使用すると仮定するつもりです。

都市を特定の名前と照合するには、クエリをサポートするセカンダリインデックス構造を構築して維持する必要があります。あなたがこれを行うことができる1つの方法は、SETデータ構造体を使用し、その都市名を共有するIDのセットを指すキーとして都市名を使用します。

2

Redisは、すぐにデータを照会することをサポートしていません。これは、基本的に、値がLists、Hashtables e.t.cのようなデータ構造である単純なキー値ストアです。

回避策は、IDの別のリストまたはハッシュテーブルを作成し、それをRedisに格納することです。追加または削除される新しいIDのリストを維持する必要があります。

クエリが最も重要である場合は、distributed cacheNCacheなど)またはquerying your dataをサポートするその他のキャッシング製品のようになります。

関連する問題