2017-01-31 7 views
0

私はRedisデータストアに非常に多くのキーを持っています。これらのキーはすべて、非常に任意の長い16進数のランダムな名前を持っています。ハッシュ内のキー/値に基づいてRedisのハッシュにキー/値データを見つけて追加するにはどうすればよいですか?

ハッシュであるすべてのキーには、名前を持つキーがあります。この名前には値があります。

キーの位置がわからないときに、特定の一意の名前の値を持つハッシュを見つける方法はありますか。(だから私は、このための私のすべてのハッシュ値を検索する必要があります - 非常に悪い私が知っている) - 例えば、私はユニークname: f-377

答えて

1

を持つハッシュへのフィールドcolor: blueを追加し、私はあなたがなり、加算ハッシュを作成することをお勧めこの固有の値はすべてロングネームにマッピングされています。別名独自のインデックス。

したがって、新しいハッシュを作成し、存在するすべてのキーに移動してフィールドを追加する必要があります(キーごとに1つずつ)。そして、将来、新しいキーを作成する必要がある場合、新しいフィールドをインデックスハッシュに追加する必要があります。 このインデックスで検索するhash-O(1)、あなたが得ることができる最高のもの。

+0

残念ながら、私はこのデータの元の伝播を制御する人ではありません。 –

+0

これは悪いです。すべてのキーを検索するのは非常にコストがかかります - O(n)、要求されたオブジェクトを新しいインデックス構造を追加するよりも早く見つける方法は他にありません。可能ならば、Luaスクリプトhttps://redis.io/commands/evalを使用して、データを伝播する他の人たちとより厳密な契約を結ぶことができます。 SQLデータベースのストアドプロシージャのように使用できます。 – iMysak

関連する問題