首頁 >資料庫 >Redis >redis自增計數

redis自增計數

尚
原創
2020-05-08 09:29:185356瀏覽

redis自增計數

INCR key

將 key 中儲存的數字值增加。

如果 key 不存在,那麼 key 的值就會先初始化為 0 ,然後再執行 INCR 作業。

如果值包含錯誤的類型,或字串類型的值不能表示為數字,那麼回傳一個錯誤。

本運算的值限制在 64 位元(bit)有符號數字表示之內。

這是一個針對字串的操作,因為 Redis 沒有專用的整數類型,所以 key 內儲存的字串被解釋為十進位 64 位元有符號整數來執行 INCR 操作。

可用版本:

>= 1.0.0

時間複雜度:

O(1)

傳回值:

執行INCR 指令之後key 的值。

redis> SET page_view 20
OK
redis> INCR page_view
(integer) 21
redis> GET page_view    # 数字值在 Redis 中以字符串的形式保存
"21"

計數器是 Redis 的原子性自增操作可實現的最直觀的模式了,它的想法相當簡單:每當某個操作發生時,向 Redis 發送一個 INCR 命令。

例如在一個web 應用程式中,如果想知道使用者在一年中每天的點擊量,那麼只要將使用者ID 以及相關的日期資訊作為鍵,並在每次使用者點擊頁面時,執行一次自增操作即可。

例如使用者名稱是 peter ,點選時間是 2012 年 3 月 22 日,那麼執行指令 INCR peter::2012.3.22 。

可以用以下幾種方式擴展這個簡單的模式:

  • 可以透過組合使用INCR 和EXPIRE ,來達到只在規定的生存時間內進行計數( counting)的目的。

  • 客戶端可以透過使用 GETSET 指令原子性地取得計數器的目前值並將計數器清零,更多資訊請參考 GETSET 指令。

  • 使用其他自增/自減操作,例如DECR 和INCRBY ,使用者可以透過執行不同的操作增加或減少計數器的值,例如在遊戲中的記分器就可能用到這些命令。

更多redis知識請關注redis入門教學欄位。

以上是redis自增計數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn