Redis中hash表中的field的value自增能够用hincrby

Redis HINCRBY命令用于增长存储在字段中存储由增量键哈希的数量。若是键不存在,新的key被哈希建立。若是字段不存在,值被设置为0以前进行操做。html

回复整数,字段的增值操做后的值。python

redis HINCRBY命令的基本语法以下所示:redis

redis 127.0.0.1:6379> HINCRBY KEY_NAME FIELD_NAME INCR_BY_NUMBER 
redis 127.0.0.1:6379> HSET myhash field1 20
(integer) 1
redis 127.0.0.1:6379> HINCRBY myhash field 1
(integer) 21
redis 127.0.0.1:6379> HINCRBY myhash field -1
(integer) 20


HINCRBY key field incrementhtm

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

增量也能够为负数,至关于对给定域进行减法操做。字符串

若是 key 不存在,一个新的哈希表被建立并执行 HINCRBY 命令。get

若是域 field 不存在,那么在执行命令前,域的值被初始化为 0 。string

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

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

可用版本:
>= 2.0.0
时间复杂度:
O(1)
返回值:
执行  HINCRBY 命令以后,哈希表  key 中域  field 的值。
# increment 为正数

redis> HEXISTS counter page_view    # 对空域进行设置
(integer) 0

redis> HINCRBY counter page_view 200
(integer) 200

redis> HGET counter page_view
"200"


# increment 为负数

redis> HGET counter page_view
"200"

redis> HINCRBY counter page_view -50
(integer) 150

redis> HGET counter page_view
"150"


# 尝试对字符串值的域执行HINCRBY命令

redis> HSET myhash string hello,world       # 设定一个字符串值
(integer) 1

redis> HGET myhash string
"hello,world"

redis> HINCRBY myhash string 1              # 命令执行失败,错误。
(error) ERR hash value is not an integer

redis> HGET myhash string                   # 原值不变
"hello,world"
相关文章
相关标签/搜索