Redis Hash 雜湊表 命令使用

2021-08-15 10:19:43 字數 3420 閱讀 8878

本文主要用作學習記錄,參考

#hdel

hdel key field [field ...]

刪除雜湊表 key 中的乙個或多個指定域,不存在的域將被忽略。

> hgetall abbr

1) "a"

3) "b"

4) "banana"

5) "c"

6) "cat"

7) "d"

8) "dog"

> hdel abbr a

(integer) 1

> hgetall abbr

1) "b"

2) "banana"

3) "c"

4) "cat"

5) "d"

6) "dog"

#hexists

檢視雜湊表 key 中,給定域 field 是否存在。

ok> hexists abbr a

(integer) 1

> hexists abbr f

(integer) 0

hget

hget key field

返回雜湊表 key 中給定域 field 的值。

> hget abbr

(error) err wrong number of arguments for 'hget' command

> hget abbr a

#hgetall

hgetall key

返回雜湊表 key 中,所有的域和值。

在返回值裡,緊跟每個網域名稱(field name)之後是域的值(value),所以返回值的長度是雜湊表大小的兩倍。

> hgetall abbr

1) "a"

3) "b"

4) "banana"

5) "c"

6) "cat"

7) "d"

8) "dog"

hincrby

hincrby key field increment

為雜湊表 key 中的域 field 的值加上增量 increment 。

增量也可以為負數,相當於對給定域進行減法操作

如果 key 不存在,乙個新的雜湊表被建立並執行 hincrby 命令。

如果域 field 不存在,那麼在執行命令前,域的值被初始化為 0 。

對乙個儲存字串值的域 field 執行 hincrby 命令將造成乙個錯誤。

本操作的值被限制在 64 位(bit)有符號數字表示之內。

> hset count a 1

(integer) 1

> hincrby count a 20

(integer) 21

#hincrbyfloat

hincrbyfloat key field increment

為雜湊表 key 中的域 field 加上浮點數增量 increment 。

如果雜湊表中沒有域 field ,那麼 hincrbyfloat 會先將域 field 的值設為 0 ,然後再執行加法操作。

如果鍵 key 不存在,那麼 hincrbyfloat 會先建立乙個雜湊表,再建立域 field ,最後再執行加法操作。

當以下任意乙個條件發生時,返回乙個錯誤:

域 field 的值不是字串型別(因為 redis 中的數字和浮點數都以字串的形式儲存,所以它們都屬於字串型別)

域 field 當前的值或給定的增量 increment 不能解釋(parse)為雙精度浮點數(double precision floating point number)

hincrbyfloat 命令的詳細功能和 incrbyfloat 命令類似,請檢視 incrbyfloat 命令獲取更多相關資訊。

#hkeys

hkeys key

返回雜湊表 key 中的所有域。

> hgetall abbr

1) "a"

3) "b"

4) "banana"

5) "c"

6) "cat"

7) "d"

8) "dog"

> hkeys abbr

1) "a"

2) "b"

3) "c"

4) "d"

#hlen

hlen key

返回雜湊表 key 中域的數量。

> hlen abbr

(integer) 4

#hmget

hmget key field [field ...]

返回雜湊表 key 中,乙個或多個給定域的值。

如果給定的域不存在於雜湊表,那麼返回乙個 nil 值。

因為不存在的 key 被當作乙個空雜湊表來處理,所以對乙個不存在的 key 進行 hmget 操作將返回乙個只帶有 nil 值的表。

> hmget abbr c d

1) "cat"

2) "dog"

#hmset

hmset key field value [field value ...]

同時將多個 field-value (域-值)對設定到雜湊表 key 中。

此命令會覆蓋雜湊表中已存在的域。

如果 key 不存在,乙個空雜湊表被建立並執行 hmset 操作。

> hmset addr f food g good

ok> hgetall addr

1) "f"

2) "food"

3) "g"

4) "good"

#hset

hset key field value

將雜湊表 key 中的域 field 的值設為 value 。

如果 key 不存在,乙個新的雜湊表被建立並進行 hset 操作。

如果域 field 已經存在於雜湊表中,舊值將被覆蓋。

#hsetnx

hsetnx key field value

將雜湊表 key 中的域 field 的值設定為 value ,當且僅當域 field 不存在。

若域 field 已經存在,該操作無效。

如果 key 不存在,乙個新雜湊表被建立並執行 hsetnx 命令。

#hvals

hvals key

返回雜湊表 key 中所有域的值。

> hgetall addr

1) "f"

2) "food"

3) "g"

4) "good"

> hvals addr

1) "food"

2) "good"

#hstrlen

hstrlen key field

返回雜湊表 key 中, 與給定域 field 相關聯的值的字串長度(string length)。

如果給定的鍵或者域不存在, 那麼命令返回 0 。

可用版本:

>= 3.2.0

Redis Hash雜湊型別

redis所有的key都是字串 hash都是在redis裡的命令都是以 h開頭的 將雜湊表 key 中的字段 field 的值設為 value hset hash名稱 k v獲取儲存在雜湊表中指定欄位的值 hget hash名稱 k名同時將多個 field value 域 值 對設定到雜湊表 key...

redis Hash雜湊型別

127.0.0.1 6379 hset hash field hello world set乙個具體的key value值 integer 1 127.0.0.1 6379 hget hash field 獲取乙個值 hello world 127.0.0.1 6379 hmset hash fie...

redis Hash 雜湊資料型別相關命令

hset key field value 作用 把 key中 filed 域的值設為 value 注 如果沒有 field域,直接新增 如果有 則覆蓋原 field 域的值 hmset key field1 value1 field2 value2 field3 value3 fieldn valu...