Redis 基础教程

Redis 命令

Redis 高级教程

Redis 笔记

Redis HINCRBYFLOAT 命令

Redis 哈希(Hashes)底层数据结构及所有相关命令 Redis 哈希(Hashes)底层数据结构及所有相关命令


Redis HINCRBYFLOAT 命令为哈希表 key 中的域 field 的值加上浮点数增量 increment。增量也可以为负浮点数,相当于对指定域进行减法操作。如果哈希表中没有域 field,那么 HINCRBYFLOAT 会先将域 field 的值设为 0,然后再执行加法操作。如果键 key 不存在,那么 HINCRBYFLOAT 会先创建一个哈希表,再创建域 field,最后再执行加法操作。

命令格式

HINCRBYFLOAT key field increment

可用版本:>=2.6.0

时间复杂度:O(1)

HINCRBYFLOAT 命令的详细功能和 INCRBYFLOAT 命令类似。

命令返回值

HINCRBYFLOAT 命令返回有 3 种情况:

  • 指定 key 不存在时,返回指定的增量。
  • 指定 key 存在且指定 field 为浮点数时,返回增量(可以为负数)之后的值。
  • 指定的 field 值为非浮点数时,返回一个错误。

示例

redis> HINCRBYFLOAT noexist field 188    # 指定 key 不存在时
"188"
redis> HSET myhash field1 1.88
(integer) 1
redis> HINCRBYFLOAT myhash field1 0.18   # 指定 key 存在且指定 field 为数字时
"2.06"
redis> HINCRBYFLOAT myhash field1 -0.06  # 增量为负数,相当于相减
"2"
redis> HSET myhash field2 suzuki
(integer) 1
redis> HINCRBYFLOAT myhash field2 1      # 指定的 field 值为非浮点数时,返回一个错误
(error) ERR hash value is not a valid float
redis>