當(dāng)前位置:
首頁(yè) >
Redis自增计数
發(fā)布時(shí)間:2023/12/19
32
豆豆
INCR key
將?key?中儲(chǔ)存的數(shù)字值增一。
如果?key?不存在,那么?key?的值會(huì)先被初始化為?0?,然后再執(zhí)行?INCR?操作。
如果值包含錯(cuò)誤的類型,或字符串類型的值不能表示為數(shù)字,那么返回一個(gè)錯(cuò)誤。
本操作的值限制在 64 位(bit)有符號(hào)數(shù)字表示之內(nèi)。
這是一個(gè)針對(duì)字符串的操作,因?yàn)?strong> Redis 沒(méi)有專用的整數(shù)類型,所以 key 內(nèi)儲(chǔ)存的字符串被解釋為十進(jìn)制 64 位有符號(hào)整數(shù)來(lái)執(zhí)行 INCR 操作。
可用版本:模式:計(jì)數(shù)器
計(jì)數(shù)器是 Redis 的原子性自增操作可實(shí)現(xiàn)的最直觀的模式了,它的想法相當(dāng)簡(jiǎn)單:每當(dāng)某個(gè)操作發(fā)生時(shí),向 Redis 發(fā)送一個(gè)?INCR?命令。
比如在一個(gè) web 應(yīng)用程序中,如果想知道用戶在一年中每天的點(diǎn)擊量,那么只要將用戶 ID 以及相關(guān)的日期信息作為鍵,并在每次用戶點(diǎn)擊頁(yè)面時(shí),執(zhí)行一次自增操作即可。
比如用戶名是?peter?,點(diǎn)擊時(shí)間是 2012 年 3 月 22 日,那么執(zhí)行命令?INCR?peter::2012.3.22?。
可以用以下幾種方式擴(kuò)展這個(gè)簡(jiǎn)單的模式:
- 可以通過(guò)組合使用?INCR?和?EXPIRE?,來(lái)達(dá)到只在規(guī)定的生存時(shí)間內(nèi)進(jìn)行計(jì)數(shù)(counting)的目的。
- 客戶端可以通過(guò)使用?GETSET?命令原子性地獲取計(jì)數(shù)器的當(dāng)前值并將計(jì)數(shù)器清零,更多信息請(qǐng)參考?GETSET?命令。
- 使用其他自增/自減操作,比如?DECR?和?INCRBY?,用戶可以通過(guò)執(zhí)行不同的操作增加或減少計(jì)數(shù)器的值,比如在游戲中的記分器就可能用到這些命令。
總結(jié)
- 上一篇: flush privileges
- 下一篇: 为什么使用数据库从库