Nosql
redis新手 - 如何在雜湊中創建雜湊?
我想在redis中創建這種類型的結構:(它基本上是json數據)
{ "id": "0001", "name":"widget ABC", "model": "model123", "service":"standard", "admin_password": 82616416, "r1": { "extid":"50000", "password":"test123", }, "r2": { "ext":"30000", "password":"test123", }, }
到目前為止我已經嘗試過:
我試圖創建一個沒有“子”雜湊的雜湊,只是為了確保我掌握了基礎知識。所以這是我從 redis-cli 開始的:
HMSET widget:1 id 0001 name 'widget ABC' model 'model123' service standard admin_password 82616416 HMSET widget:2 id 0002 name 'widget ABC' model 'model123' service standard admin_password 12341234
這似乎行得通。我可以看到我在小元件集合中有 2 條小元件數據“記錄”。
但是我嘗試使用 r1 數據創建記錄失敗了。
這是我嘗試過的:
HMSET widget:3 id 0002 name 'widget ABC' model 'model123' service standard admin_password 12341234 r1{extid 50000}
這將創建一個散列鍵“r1{extid”,散列值為“50000}”
任何建議,將不勝感激。我認為我的問題是我的行話。我只是對 redis 語法知之甚少,不知道在我的Google搜尋中使用什麼詞。
也許我只需要像這樣“展平”數據:
HMSET widget:3 id 0002 name 'widget ABC' model 'model123' service standard admin_password 12341234 r1_extid 50000 r1_password test123 r2_extid 30000 r2_password test123
謝謝。
Redis 不支持嵌套資料結構,特別是它不支持 Hash 內的 Hash :) 您基本上可以在兩個選項之間進行選擇:序列化內部 Hash 並將其儲存在 Hash 欄位中或使用另一個 Hash 鍵和只需在外部雜湊的欄位中保留對它的引用。
我建議ReJSON。它旨在準確處理這些問題。
您可以使用路徑表示法來訪問嵌套元素。