Hash
Last updated
Was this helpful?
Last updated
Was this helpful?
Redis中的Hash資料結構是一種包含兩層鍵值對的散列鍵。可以視為一個hash-key對應的內容包含多組(sub-key : value)鍵值對資料,其中一個sub-key(或稱field)又只會對應一個value。
如果每筆資料內容包含多個欄位,每個欄位又只有一個值,就可以試圖套用Hash來儲存資料。以下方資料框架(Data Frame)格式的資料表為例:
ID
Name
Gender
Age
Hobby
001
Mike
M
18
movies
002
Ranger
M
19
motorcycle
003
Ingrid
F
17
music
如果用String的資料結構,一筆資料列可能就必須設置成四組String資料,之後在搜尋資料時,必須自己記得欄位有哪些,並且透過四次取值,才能重新獲得一筆完整的原始資料,如果能夠再多一個sub-key儲存欄位的資訊,資料的架構會清楚許多。
String Key
Value
ID:001:Name
Mike
ID:001:Gender
M
ID:001:Age
18
ID:001:Hobby
movies
因此,針對上述情形,可以嘗試創建Hash資料,針對第一筆資料列,其Hash-key可命名為ID:001
,Sub-Key則對應欄位名稱(因此有時改稱Sub-Key為Field),如下表所示。
Sub-Key
Value
Name
Mike
Gender
M
Age
18
Hobby
movies
然而上述僅提供一個範例,實際Hash的應用,Hash-Key跟Sub-Key怎麼規劃,應視整體專案的需求來審慎規劃,筆者也在此強調不要侷限於範例的使用情境,建議再透過暸解並熟悉Hash的相關指令(Command)後,再決定適合的資料儲存方式。