HINCRBY

HINCRBY key field increment

为哈希表 key 中的域 field 的值加上增量 increment

增量也可以为负数,相当于对给定域进行减法操作。

如果 key 不存在,一个新的哈希表被创建并执行 HINCRBY 命令。

如果域 field 不存在,那么在执行命令前,域的值被初始化为 0

对一个储存字符串值的域 field 执行 HINCRBY 命令将造成一个错误。

本操作的值被限制在 64 位(bit)有符号数字表示之内。

  • 可用版本:
  • >= 2.0.0

  • 时间复杂度:

  • O(1)

  • 返回值:

  • 执行 HINCRBY 命令之后,哈希表 key 中域 field 的值。
  1. # increment 为正数
  2.  
  3. redis> HEXISTS counter page_view # 对空域进行设置
  4. (integer) 0
  5.  
  6. redis> HINCRBY counter page_view 200
  7. (integer) 200
  8.  
  9. redis> HGET counter page_view
  10. "200"
  11.  
  12.  
  13. # increment 为负数
  14.  
  15. redis> HGET counter page_view
  16. "200"
  17.  
  18. redis> HINCRBY counter page_view -50
  19. (integer) 150
  20.  
  21. redis> HGET counter page_view
  22. "150"
  23.  
  24.  
  25. # 尝试对字符串值的域执行HINCRBY命令
  26.  
  27. redis> HSET myhash string hello,world # 设定一个字符串值
  28. (integer) 1
  29.  
  30. redis> HGET myhash string
  31. "hello,world"
  32.  
  33. redis> HINCRBY myhash string 1 # 命令执行失败,错误。
  34. (error) ERR hash value is not an integer
  35.  
  36. redis> HGET myhash string # 原值不变
  37. "hello,world"