本文内容为 http://www.redis.io/commands/hincrbyfloat 的翻译、注解、例子扩充及其它修改。感谢 Redis 作者 Antirez 为开源社区作出的贡献,本文保证最新、最准、最全以表示对其的敬意。欢迎留言纠错、提示更新或支持。
HINCRBYFLOAT key field increment

将存储在 key 中的哈希(Hash)对象中的指定字段 field 的值加上增量 increment,增量 increment 类型为浮点数(Floating point number)

Increment the specified field of an hash stored at key, and representing a floating point number, by the specified increment.

如果字段 field 不存在,在进行当前操作前,其将被创建,且对应的值被置为 0

If the field does not exist, it is set to 0 before performing the operation. 

当下列某个情况发生时,将返回一个错误:

  • 字段包含的值的类型错误(非字符串(String))。
  • 当前字段的内容或指定的增量 increment 不能够被解析为双精度浮点数(Double precision floating point number)
  • The field contains a value of the wrong type (not a string).
  • The current field content or the specified increment are not parsable as a double precision floating point number.

当前命令的行为与命令 INCRBYFLOAT 的类似,请查询 INCRBYFLOAT 以获得更多信息。

  • 在进行增量操作后,字段 field 对应的新值。

    Bulk string reply: the value of field after the increment.
  • redis> HSET mykey field 10.50
    (integer) 1
    redis> HINCRBYFLOAT mykey field 0.1
    "10.6"
    redis> HSET mykey field 5.0e3
    (integer) 0
    redis> HINCRBYFLOAT mykey field 2.0e2
    "5200"
  • 版本支持

    2.6.0+

    时间复杂度(Time complexity)

    O(1)