2014-09-12 74 views
2

我正在使用jedis與java語言中的redis進行交互。在java中使用Jedis在redis中搜索

問題背景

我使用哈希存儲用戶的所有信息,如:

hmset user:1 name xxx email yyy age zzz 
hmset user:2 name aaa email bbb age ccc 
爲了得到任何用戶數據,我可以像執行操作

現在:

hmget user:1 name email 

問題

我的問題是,我想搜索名稱爲xxx的用戶。現在在這種情況下,我不知道真正的關鍵。意思是我不知道我必須擊中用戶:1或用戶:2。

那麼我應該如何處理這種情況呢?

任何幫助將非常感激。

回答

0

根據How to search in redis for hash keys?的回覆,Redis是一家重要價值商店。因此,如果您想對地圖中的值執行搜索,則需要在Redis中維護手動索引或使用其他數據庫。

如果你真的想使用Redis的,一個可能的索引你的問題按名稱搜索將是:

sadd name:xxx 1 
sadd name:aaa 2 

然後,您可以檢索名爲xxx與成員的ID:

SINTER name:xxx 

最後,您只需創建地圖的關鍵字即可:user:1