2012-06-26 38 views
4

當使用Redis創建「記錄」時,您可以創建包含多個字段的哈希值。例如:Redis通過字段值查找哈希值

HMSET myhash field1 "Hello" field2 "World" 
HMSET myhash2 field1 "Goodbye" field2 "World" 

您可以通過了解鍵值檢索這一點,但是我想知道有沒有什麼辦法來檢索具有「世界」場2所有哈希?

回答

10

在redis中沒有索引,它沒有實現SQL。這是一家重要的商店。你提供了一把鑰匙,它爲你提供了一個價值。

也就是說,你可以通過自己維護二級索引來實現這一點。例如:

創建一個記錄和索引條目

HMSET myhash field1 Hello field2 World 
SADD field2_world myhash 

更新記錄,刪除舊索引項,創建新的

SREM field2_world myhash 
HMSET myhash field2 Mundo 
SADD field2_mundo myhash 

發現其中有「世界」 field2所有記錄

SMEMBERS field2_world 

我希望你能明白。

+0

我用2個哈希函數在答案中執行了確切的命令,但它不起作用。你能再解釋一下嗎? – SHM

+0

@SHM:它怎麼沒用?顯示該會話的整個命令歷史記錄。帶輸出。 –