1.redis 命令 HINCRBY/HLEN/HVALS/HINCRBYFLOAT/HKEYS/HSETNX
将哈希字段的整数值递增给定的数字

句法
HINCRBY key field increment
可用版本:
2.0.0

时间复杂度:
O(1)

ACL 类别:
@write, @hash, @fast

field将存储在key处哈希中的数字递增。如果key不存在,则创建一个包含哈希的新key。
如果field不存在,则在执行操作之前将值设置为0。
支持的值范围HINCRBY限于 64 位有符号整数。

#返回
整数回复:field递增操作后的值。

#例子
由于increment参数是有符号的,因此可以执行递增和递减操作:

redis> HSET myhash field 5
(integer) 1
redis> HINCRBY myhash field 1
(integer) 6
redis> HINCRBY myhash field -1
(integer) 5
redis> HINCRBY myhash field -10
(integer) -5
redis> 

redis 命令 HLEN
获取哈希中的字段数

句法
HLEN key
可用版本:
2.0.0

时间复杂度:
O(1)
ACL 类别:
@read, @hash, @fast
返回存储在key处的哈希中包含的字段数。

#返回
整数回复:哈希中的字段数,或0当key不存在。

#例子
redis> HSET myhash field1 "Hello"
(integer) 1
redis> HSET myhash field2 "World"
(integer) 1
redis> HLEN myhash
(integer) 2
redis>

redis 命令 HVALS
获取哈希中的所有值

句法
HVALS key
可用版本:
2.0.0

时间复杂度:
O(N) 其中 N 是散列的大小。

ACL 类别:
@read, @hash, @slow
返回存储在key的哈希中的所有值。
#返回
数组回复:散列中的值列表,如果key不存在,则为空列表。

#例子
redis> HSET myhash field1 "Hello"
(integer) 1
redis> HSET myhash field2 "World"
(integer) 1
redis> HVALS myhash
1) "Hello"
2) "World"
redis>

redis 命令 HINCRBYFLOAT
将哈希字段的浮点值递增给定的量。递增小数,整数,科学计数法表示均可。

句法
HINCRBYFLOAT key field increment
可用版本:
2.6.0

时间复杂度:
O(1)

ACL 类别:
@write, @hash, @fast

将存储在key处并表示浮点数的哈希的指定“field递增指定的increment。
如果增量值为负,则结果是哈希字段值递减,而不是递增。如果该字段不存在,
则在执行操作之前将其设置为0。如果出现以下情况之一,则返回错误:

该字段包含错误类型的值(不是字符串)。
当前字段内容或指定的增量不能作为双精度浮点数字进行解析。
此命令的确切行为与INCRBYFLOAT的行为相同命令,请参阅INCRBYFLOAT的文档以获取更多信息。

#返回
批量字符串回复:field增量后的值。

#例子
redis> HSET mykey field 10.50
(integer) 1
redis> HINCRBYFLOAT mykey field 0.1
"10.6"
redis> HINCRBYFLOAT mykey field -5
"5.6"
redis> HSET mykey field 5.0e3
(integer) 0
redis> HINCRBYFLOAT mykey field 2.0e2
"5200"
redis> 
#实施细节
该命令始终作为HSET操作在复制链接和 Append Only File 中传播,
因此底层浮点数学实现中的差异不会成为不一致的根源

redis 命令 HKEYS
获取哈希中的所有字段

句法
HKEYS key
可用版本:
2.0.0
时间复杂度:
O(N) 其中 N 是散列的大小。

ACL 类别:
@read, @hash, @slow
返回存储在key处的哈希中的所有字段名称。

#返回
数组回复key:哈希中的字段列表,如果不存在则为空列表。

#例子
redis> HSET myhash field1 "Hello"
(integer) 1
redis> HSET myhash field2 "World"
(integer) 1
redis> HKEYS myhash
1) "field1"
2) "field2"
redis> 

redis hash 命令 HSETNX
仅当哈希字段不存在时,才设置该字段的值。
创建新字段,字段存在时不操作。

句法

HSETNX key field value
可用版本:
2.0.0

时间复杂度:
O(1)

ACL 类别:
@write, @hash, @fast
仅当field还不存在时,才将存储在key处的哈希中的field设置为value。
如果key不存在,则会创建一个包含哈希的新key。如果“字段”已经存在,则此操作无效。

#返回
整数回复,具体来说:

1iffield是哈希中的一个新字段并value已设置。
0如果field哈希中已经存在并且没有执行任何操作。
#例子
redis> HSETNX myhash field "Hello"
(integer) 1
redis> HSETNX myhash field "World"
(integer) 0
redis> HGET myhash field
"Hello"
redis> 
 

更多推荐