2016-06-08 137 views
0

我有喜歡Redis的幾個類似的鍵:搜索在Redis的哈希鍵

  • /條/ 200
  • /條/ 200什麼
  • /條/ 200/something_else

我想檢索所有像「/ article/200%」這樣的關鍵字的哈希。

Redis中可能嗎?如果是,如何?

回答

1

如果您指的是散列內的值或條目。那麼這是不可能的。

hset hash /article/200 1 
hset hash /article/200?something 2 
hset hash somethingelse 3 

檢索此散列內的條目是不可能的。您需要在應用程序邏輯中處理它們,或者必須爲此編寫一個lua腳本。

如果你想散列,即密鑰檢索,那麼它是可能的。

hset /article/200 value1 1 
hset /article/200?something value2 2 
hset somethingelse value3 3 
keys "/article/200*" will return /article/200 and /article/200?something 

您可以使用掃描(http://redis.io/commands/scan)或鍵(http://redis.io/commands/keys)命令來實現相同的。

鍵「/ article/200 *」會給你所有與給定模式匹配的鍵。

鑰匙通常是阻塞的,建議不要在生產中使用。所以,使用掃描來達到你的要求。編寫一個簡單的LUA腳本(http://redis.io/commands/eval)以達到與原子相同的效果。

+0

謝謝。我想要的是第二種行爲。我會研究解決它。 –