【Redis】基本數據類型常用操作 - 哈希Hash

redis裏的hash是一個string類型的field(字段)和value(值)的映射表。特別適合用於存儲對象,每個hash可以存儲40多億鍵值對。

熟悉python的童鞋可以想象成字典dict。之前的數據類型存儲都是k-v這樣,而hash的存儲就是k-dictdict裏又會有屬於自己的k-v

一、hset

爲哈希表中的字段賦值,如果哈希表不存在,創建一個新的哈希表被並進行hset操作。
如果字段已經存在於哈希表中,舊值將被覆蓋。

hset myhash k1 v1

二、hget

返回哈希表中指定字段的值,如果給定的字段或 key 不存在時,返回 nil。

hget myhash k1

三、hmset

同時將多個 field-value 對設置到哈希表中。

hmset myhash k2 v2 k3 v3

如果哈希表中已存在的字段,則覆蓋。
如果哈希表不存在,會創建一個空哈希表,並執行hset操作。

四、hmget

返回哈希表中,一個或多個給定字段的值。

hmget myhash k1 k2 k3 k4

如果指定的字段不存在於哈希表,那麼返回一個nil值。

五、hgetall

返回哈希表中,所有的字段和值。

hgetall myhash

注意,在返回值裏,緊跟每個字段名(field name)之後是字段的值(value),所以返回值的長度是哈希表大小的兩倍。

六、hdel

刪除哈希表 key 中的一個或多個指定字段,不存在的字段將被忽略。

hdel myhash k2 k3 k5

返回的是被成功刪除字段的數量,不包括被忽略的字段。

七、hlen

獲取哈希表中字段的數量。

hlen myhash

八、hexists

查看哈希表的指定字段是否存在。

hexists myhash k1

如果哈希表含有給定字段,返回 1。
如果哈希表不含有給定字段,或 key 不存在,返回 0 。

九、hkeys

獲取哈希表中的所有字段(field)。

hkeys myhash

包含哈希表中所有字段(field)列表。 當 key 不存在時,返回一個空列表。

十、hvals

返回哈希表所有字段(field)的值。

hvals myhash

返回一個包含哈希表中所有字段(field)值的列表。 當 key 不存在時,返回一個空表。

十一、hincrby

爲哈希表中的字段值加上指定增量值,這個增量也可以是負數,相當於減法。

若哈希表的 key 不存在,創建一個新的哈希表被並執行hincrby命令。

若指定的字段不存在,那麼在執行命令前,字段的值被初始化爲 0 。

若對儲存字符串值的字段執行,會報錯。

十二、hsetnx

爲哈希表中不存在的的字段賦值。

若哈希表不存在,創建新的哈希表並進行 hset 操作。

如果字段已經存在於哈希表中,操作無效。

如果key不存在,創建新哈希表並執行hsetnx命令。

關於redis中hash的應用,比如保存用戶信息數據、經常變動的信息,如果不想使用傳統的k-v對象去存儲,可以用redis的hash。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章