Redis中hash表中的field的value自增可以用hincrby


Redis HINCRBY命令用於增加存儲在字段中存儲由增量鍵哈希的數量。如果鍵不存在,新的key被哈希創建。如果字段不存在,值被設置為0之前進行操作。

回復整數,字段的增值操作后的值。

redis HINCRBY命令的基本語法如下所示:

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 increment

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

增量也可以為負數,相當於對給定域進行減法操作。

如果 key 不存在,一個新的哈希表被創建並執行 HINCRBY 命令。

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

對一個儲存字符串值的域 field 執行 HINCRBY 命令將造成一個錯誤。

本操作的值被限制在 64 位(bit)有符號數字表示之內。

可用版本:
>= 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"


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM