Hash

資料結構

Redis中的Hash資料結構是一種包含兩層鍵值對的散列鍵。可以視為一個hash-key對應的內容包含多組(sub-key : value)鍵值對資料,其中一個sub-key(或稱field)又只會對應一個value。

Concept of Hash structure in Redis

如果每筆資料內容包含多個欄位,每個欄位又只有一個值,就可以試圖套用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)後,再決定適合的資料儲存方式。

An example of hash structure

Last updated

Was this helpful?