在Redis中,雜湊表是一種將字串類型的欄位和對應的值進行對應的資料結構。特別適合用於儲存對象,每個hash可以儲存40多億鍵值對。
熟悉python的童鞋可以想像成字典dict。之前的資料型別儲存都是k-v這樣,而hash的儲存就是k-dict
,dict
裡又會有屬於自己的k-v
。
為雜湊表中的欄位賦值,如果雜湊表不存在,建立一個新的雜湊表被並進行hset操作。
如果欄位已經存在於雜湊表中,舊值將被覆寫。
hset myhash k1 v1
傳回哈希表中指定欄位的值,如果給定的欄位或 key 不存在時,傳回 nil。
hget myhash k1
同時將多個 field-value 對設定到哈希表中。
hmset myhash k2 v2 k3 v3
如果哈希表中已存在的字段,則覆寫。
如果哈希表不存在,會建立一個空哈希表,並執行hset操作。
傳回雜湊表中,一個或多個給定欄位的值。
hmget myhash k1 k2 k3 k4
如果指定的欄位不存在於雜湊表,那麼傳回一個nil值。
傳回雜湊表中,所有的欄位和值。
hgetall myhash
注意,在傳回值裡,緊接在每個欄位名稱(field name)之後是欄位的值(value),所以傳回值的長度是雜湊表大小的兩倍。
刪除哈希表 key 中的一個或多個指定字段,不存在的字段將被忽略。
hdel myhash k2 k3 k5
傳回的是被成功刪除欄位的數量,不包括被忽略的欄位。
取得雜湊表中欄位的數量。
hlen myhash
查看哈希表的指定欄位是否存在。
hexists myhash k1
如果哈希表含有給定字段,則傳回 1。
如果雜湊表不含有給定字段,或 key 不存在,則傳回 0 。
取得雜湊表中的所有欄位(field)。
hkeys myhash
包含哈希表中所有欄位(field)清單。當 key 不存在時,傳回一個空列表。
傳回哈希表所有欄位(field)的值。
hvals myhash
傳回一個包含雜湊表中所有欄位(field)值的清單。當 key 不存在時,傳回一個空表。
為雜湊表中的欄位值加上指定增量值,這個增量也可以是負數,相當於減法。
若雜湊表的 key 不存在,建立一個新的雜湊表被並執行hincrby
指令。
若指定的欄位不存在,那麼在執行指令前,欄位的值被初始化為 0 。
若對儲存字串值的欄位執行,會報錯。
為雜湊表中不存在的欄位賦值。
若雜湊表不存在,建立新的雜湊表並進行 hset 操作。
如果欄位已經存在於哈希表中,操作無效。
如果key不存在,建立新雜湊表並執行hsetnx
指令。
關於redis中hash的應用,例如保存使用者資訊資料、經常變動的信息,如果不想使用傳統的k-v物件去存儲,可以用redis的hash。
以上是Redis基本資料類型雜湊Hash常用操作實例分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!