Nosql

redis新手 - 如何在雜湊中創建雜湊?

  • April 11, 2017

我想在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。它旨在準確處理這些問題。

您可以使用路徑表示法來訪問嵌套元素。

引用自:https://dba.stackexchange.com/questions/96795