• HINCRBYFLOAT

    HINCRBYFLOAT

    HINCRBYFLOAT key field increment

    为哈希表 key 中的域 field 加上浮点数增量 increment

    如果哈希表中没有域 field ,那么 HINCRBYFLOAT 会先将域 field 的值设为 0 ,然后再执行加法操作。

    如果键 key 不存在,那么 HINCRBYFLOAT 会先创建一个哈希表,再创建域 field ,最后再执行加法操作。

    当以下任意一个条件发生时,返回一个错误:

    • field 的值不是字符串类型(因为 redis 中的数字和浮点数都以字符串的形式保存,所以它们都属于字符串类型)

    • field 当前的值或给定的增量 increment 不能解释(parse)为双精度浮点数(double precision floating point number)

    HINCRBYFLOAT 命令的详细功能和 INCRBYFLOAT key increment 命令类似,请查看 INCRBYFLOAT key increment 命令获取更多相关信息。

    • 可用版本:
    • >= 2.6.0

    • 时间复杂度:

    • O(1)

    • 返回值:

    • 执行加法操作之后 field 域的值。
    1. # 值和增量都是普通小数
    2.  
    3. redis> HSET mykey field 10.50
    4. (integer) 1
    5. redis> HINCRBYFLOAT mykey field 0.1
    6. "10.6"
    7.  
    8.  
    9. # 值和增量都是指数符号
    10.  
    11. redis> HSET mykey field 5.0e3
    12. (integer) 0
    13. redis> HINCRBYFLOAT mykey field 2.0e2
    14. "5200"
    15.  
    16.  
    17. # 对不存在的键执行 HINCRBYFLOAT
    18.  
    19. redis> EXISTS price
    20. (integer) 0
    21. redis> HINCRBYFLOAT price milk 3.5
    22. "3.5"
    23. redis> HGETALL price
    24. 1) "milk"
    25. 2) "3.5"
    26.  
    27.  
    28. # 对不存在的域进行 HINCRBYFLOAT
    29.  
    30. redis> HGETALL price
    31. 1) "milk"
    32. 2) "3.5"
    33. redis> HINCRBYFLOAT price coffee 4.5 # 新增 coffee 域
    34. "4.5"
    35. redis> HGETALL price
    36. 1) "milk"
    37. 2) "3.5"
    38. 3) "coffee"
    39. 4) "4.5"