Redis 操作命令 ☞ Hash
HDEL
起始版本:2.0.0
**时间复杂度:**O(N) N是被删除的字段数量。
从 key 指定的哈希集中移除指定的域。在哈希集中不存在的域将被忽略。
如果 key 指定的哈希集不存在,它将被认为是一个空的哈希集,该命令将返回0。
语法
HDEL key field [field ...]
返回值
integer-reply: 返回从哈希集中成功移除的域的数量,不包括指出但不存在的那些域
历史
在 2.4及以上版本中 :可接受多个域作为参数。小于 2.4版本 的 Redis 每次调用只能移除一个域 要在早期版本中以原子方式从哈希集中移除多个域,可用 MULTI/EXEC块。
例子
HEXISTS
起始版本:2.0.0
**时间复杂度:**O(1)
返回hash里面field是否存在
语法
HEXISTS key field
返回值
integer-reply, 含义如下:
1 hash里面包含该field。
0 hash里面不包含该field或者key不存在。
例子
HGET
起始版本:2.0.0
**时间复杂度:**O(1)
返回 key 指定的哈希集中该字段所关联的值
语法
返回值
bulk-string-reply:该字段所关联的值。当字段不存在或者 key 不存在时返回nil。
例子
HGETALL
起始版本:2.0.0
时间复杂度: 其中N是散列的大小
返回 key 指定的哈希集中所有的字段和值。返回值中,每个字段名的下一个是它的值,所以返回值的长度是哈希集大小的两倍
语法
HGETALL key
返回值
array-reply:哈希集中字段和值的列表。当 key 指定的哈希集不存在时返回空列表。
例子
HINCRBY
增加 key
指定的哈希集中指定字段的数值。如果 key
不存在,会创建一个新的哈希集并与 key
关联。如果字段不存在,则字段的值在该操作执行前被设置为 0
HINCRBY
支持的值的范围限定在 64位 有符号整数
语法
HINCRBY key field increment
返回值
integer-reply:增值操作执行后的该字段的值。
例子
HKEYS
起始版本:2.0.0
**时间复杂度:**O(N) where N is the size of the hash.
返回 key 指定的哈希集中所有字段的名字。
语法
HKEYS key
返回值
array-reply:哈希集中的字段列表,当 key 指定的哈希集不存在时返回空列表。
例子
HLEN
起始版本:2.0.0
**时间复杂度:**O(1)
返回 key
指定的哈希集包含的字段的数量。
语法
HLEN key
返回值
integer-reply: 哈希集中字段的数量,当 key
指定的哈希集不存在时返回 0
例子
HMGET
起始版本:2.0.0
**时间复杂度:**O(N) where N is the number of fields being requested.
返回 key
指定的哈希集中指定字段的值。
对于哈希集中不存在的每个字段,返回 nil
值。因为不存在的keys被认为是一个空的哈希集,对一个不存在的 key
执行 HMGET 将返回一个只含有 nil
值的列表
语法
HMGET key field [field ...]
返回值
array-reply :含有给定字段及其值的列表,并保持与请求相同的顺序。
例子
HMSET
自2.0.0起可用。
时间复杂度: O(N),其中N是要设置的字段数。
将指定的字段设置为存储在中的哈希中的相应值 key
。该命令将覆盖哈希中已经存在的所有指定字段。如果key
不存在,则创建一个包含哈希的新密钥。
根据Redis 4.0.0,HMSET被视为已弃用。请在新代码中使用HSET。
例子
HSET
自2.0.0起可用。
**时间复杂度:**对于每个添加的字段/值对,为O(1),因此当使用多个字段/值对调用命令时,O(N)要添加N个字段/值对。
设置field
在存储在哈希key
来value
。如果key
不存在,则创建一个包含哈希的新密钥。如果field
散列中已经存在,则将其覆盖。
从Redis 4.0.0开始,HSET是可变的,并允许多个field
/value
对。
语法
HSET key field value [field value ...]
返回值
整数回复:添加的字段数。
例子
HSETNX
起始版本:2.0.0
**时间复杂度:**O(1)
只在 key
指定的哈希集中不存在指定的字段时,设置字段的值。如果 key
指定的哈希集不存在,会创建一个新的哈希集并与 key
关联。如果字段已存在,该操作无效果。
返回值
integer-reply:含义如下
1:如果字段是个新的字段,并成功赋值
0:如果哈希集中已存在该字段,没有操作被执行
例子
HSTRLEN
起始版本:3.2.0
**时间复杂度:**O(1)
返回hash指定field的value的字符串长度,如果hash或者field不存在,返回0.
返回值
[integer-reply:返回hash指定field的value的字符串长度,如果hash或者field不存在,返回0.
例子
HVALS
起始版本:2.0.0
**时间复杂度:**O(N) 其中N是散列的大小
返回 key 指定的哈希集中所有字段的值。
返回值
array-reply:哈希集中的值的列表,当 key 指定的哈希集不存在时返回空列表。
例子
Last updated