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 数(能够是浮点数)

因为数能够带符号,因此能够变相实现减法操做

返回值

  • 运算后的值
  • 若是字段的值不是数或不能转换成数,返回错误
相关文章
相关标签/搜索