Redis 的命令詳解 - Hash 篇

相關文章redis

Redis 的命令詳解 - Key 篇
Redis 的命令詳解 - String 篇
Redis 的命令詳解 - List 篇
Redis 的命令詳解 - SET 篇安全

Hash 命令詳解

跟 Hash 相關的命令一共有 15 種,這裏只介紹經常使用的。想查看所有命令請參考官網post

說明 : 因爲 reids 的 Hash 類型的格式以下,爲了方便區分,裏層的 key 我稱呼爲字段。
key :{key1 : value1,key2 : value2...}code

HSET : 添加 hash 類型的鍵值對

起始版本 : 2.0.0 時間複雜度 : 添加一個字段-值對爲O(1),添加多個字段:值對爲O(N),N爲字段:值對的數量。get

  • 若是key不存在,則建立一個 hash。
  • 若是key存在,則往 hash 中追加。
  • 若是字段已經存在,則將其覆蓋。

從Redis 4.0.0開始,HSET 容許添加多個字段:值對。hash

語法

HSET key field1 value1 [field2 value2 ...]io

返回值

添加的字段:值對的對數class

HSETNX : 安全添加 hash 類型的鍵值對

起始版本 : 2.0.0
時間複雜度 : O(1)List

只有字段不存在時,才添加字段:值對。key不存在時,先建立一個 hash。語法

語法

HSETNX key field value

返回值

  • 0 : 字段已存在
  • 1 : 添加成功

HGET : 獲取某個字段的值

起始版本 : 2.0.0
時間複雜度 : O(1)

語法

HGET key field

返回值

  • 字段對應的值
  • nil :字段不存在時

HMGET : 獲取多個字段的值

起始版本 : 2.0.0
時間複雜度 : O(N),其中N是字段的數目

語法

HMGET key field1 [field2 ...]

返回值

value 列表,不存在的 field 返回 nil,順序與field順序相同

HGETALL : 獲取全部的字段:值對

起始版本 : 2.0.0
時間複雜度 : O(N),其中N是hash的大小。

語法

HGETALL key

返回值

返回全部的字段:值對列表,key若是不存在,返回空列表

HKEYS : 獲取全部的字段

起始版本 : 2.0.0
時間複雜度 : O(N),其中N是hash的大小。

語法

HKEYS key

返回值

返回全部的字段,key若是不存在則返回空列表

HVALS : 獲取全部的字段的值

起始版本 : 2.0.0
時間複雜度 : O(N),其中N是hash的大小。

語法

HVALS key

返回值

返回全部的字段的值,key若是不存在則返回空列表

HDEL : 刪除某個字段

起始版本 : 2.0.0
時間複雜度 : O(N),其中N是要刪除的字段數。

語法

HDEL key field1 [field2]

返回值

從 hash 中刪除的字段個數,不包括指定的但不存在的字段。

歷史

Redis 版本 >= 2.4:接受多個field參數。低於2.4的Redis版本每次調用只能刪除一個字段。

要在早期版本中以原子方式從哈希中刪除多個字段,請使用MULTIEXEC

HEXISTS : 判斷字段是否存在

起始版本 : 2.0.0
時間複雜度 : O(1)

語法

HEXISTS key field

返回值

  • 1 : 若是 hash 中包含field。
  • 0 : 若是 hash 中不包含field,或key不存在。

HLEN : 獲取 hash 中字段:值對的數量

起始版本 : 2.0.0
時間複雜度 : O(1)

語法

HLEN key

返回值

字段:值對的數量,當 key 不存在,返回0

HSTRLEN : 獲取字段對應值的長度

起始版本 : 3.2.0
時間複雜度 : O(1)

語法

HSTRLEN key field

返回值

字段對應值的長度,若是 field 或 key 不存在,返回0

HINCRBY : 給字段的值加上一個整數

起始版本 : 2.0.0
時間複雜度 : O(1)

  • 字段的值必須是整數或能夠轉換成整數
  • 若是字段不存在,則建立,並將值設置0
  • 若是 key 不存在,則建立,並建立字段和默認值

語法

HINCRBY key field 整數

HINCRBY 支持的整數的範圍,限制爲64位帶符號整數。因爲帶符號,因此能夠變相實現減法操做

返回值

  • 運算後的值
  • 若是字段的值不是整數或不能轉換成整數,返回錯誤

HINCRBYFLOAT : 給字段的值加上一個數(能夠是浮點數)

起始版本 : 2.6.0
時間複雜度 : O(1)

  • 字段的值必須是數或能夠轉換成數
  • 若是字段不存在,則建立,並將值設置0
  • 若是 key 不存在,則建立,並建立字段和默認值

語法

HINCRBYFLOAT key field 數(能夠是浮點數)

因爲數能夠帶符號,因此能夠變相實現減法操做

返回值

  • 運算後的值
  • 若是字段的值不是數或不能轉換成數,返回錯誤
相關文章
相關標籤/搜索