欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

redis incr和incrBy的使用說明

 更新時間:2020年11月24日 11:44:55   作者:北京--小烏龜  
這篇文章主要介紹了redis incr和incrBy的使用說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

最近用incr和incrBy在接口里做了下埋點(diǎn)統(tǒng)計每天請求總數(shù),這兩個命令還是挺好用的,先說下這倆命令吧

注:redis后臺服務(wù)是串行的單線程執(zhí)行,不存在并發(fā),即多線程調(diào)用Incr/incrby方法,在redis服務(wù)器上仍然是串行的單線程執(zhí)行,不存在并發(fā),所以這倆命令都是原子自增、線程安全的。

1、Incr 命令 (菜鳥教程)

Redis Incr 命令將 key 中儲存的數(shù)字值增一。

如果 key 不存在,那么 key 的值會先被初始化為 0 ,然后再執(zhí)行 INCR 操作。

如果值包含錯誤的類型,或字符串類型的值不能表示為數(shù)字,那么返回一個錯誤。

本操作的值限制在 64 位(bit)有符號數(shù)字表示之內(nèi)。

2、Redis Incrby 命令

Redis Incrby 命令將 key 中儲存的數(shù)字加上指定的增量值。

如果 key 不存在,那么 key 的值會先被初始化為 0 ,然后再執(zhí)行 INCRBY 命令。

如果值包含錯誤的類型,或字符串類型的值不能表示為數(shù)字,那么返回一個錯誤。

本操作的值限制在 64 位(bit)有符號數(shù)字表示之內(nèi)。

3、實(shí)現(xiàn)按天統(tǒng)計的思路

以你自定義的字符串+當(dāng)前年月日 作為key ;例:

public static final String BATCH_COMMIT_DAY_COUNT="test:wugui:";
public static String getCurrentDate() {
  SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
  return simpleDateFormat.format(new Date());
 }

redisClient.incr(BATCH_COMMIT_DAY_COUNT + DateUtil.getCurrentDate());//redis的key

當(dāng)然我并沒有為這個key用expire設(shè)置超時時間,因為我需要保留每天的統(tǒng)計;

incrBy 可以在現(xiàn)有值的基礎(chǔ)上累加你的增量值,比如你要在一個批量審核接口里統(tǒng)計每天批量審核的所有人數(shù),例:

redisClient.incrBy(BATCH_COMMIT_DAY_COUNT + DateUtil.getCurrentDate(), 63l);

注意redis的 incrBy 第二個參數(shù)是long類型,不是參數(shù)名的integer.....

public Long incrBy(final String key, final long integer) {
 checkIsInMultiOrPipeline();
 client.incrBy(key, integer);
 return client.getIntegerReply();
 }

4、總結(jié)

除了簡單計數(shù),還可以實(shí)現(xiàn)控制用戶單位時間內(nèi)請求等,可根據(jù)業(yè)務(wù)需求靈活運(yùn)用;

有興趣可以參考下這篇文章,簡單實(shí)用 //www.dbjr.com.cn/article/200492.htm

補(bǔ)充知識:redis之incrby、incr、hincrby的使用

一、incrby

1、說明

Redis Incrby 命令將 key 中儲存的數(shù)字加上指定的增量值。

2、語法

INCRBY KEY_NAME INCR_AMOUNT

二、incr

1、說明

Redis Incr 命令將 key 中儲存的數(shù)字值增一。

2、語法

INCR KEY_NAME

三、hincrby

1、說明

Redis Hincrby 命令用于為哈希表中的字段值加上指定增量值。

2、語法

HINCRBY KEY_NAME FIELD_NAME INCR_BY_NUMBER

四、實(shí)例

192.168.230.21:6379[8]> incrby value 12
(integer) 12
192.168.230.21:6379[8]> get value
"12"
192.168.230.21:6379[8]> incr value
(integer) 13
192.168.230.21:6379[8]> get value
"13"
192.168.230.21:6379[8]> get value
"13"
192.168.230.21:6379[8]> incr value
(integer) 14
192.168.230.21:6379[8]> get value
"14"
192.168.230.21:6379[8]> incrby value 10
(integer) 24
192.168.230.21:6379[8]> get value
"24"
192.168.230.21:6379[8]> incrby value -5
(integer) 19
192.168.230.21:6379[8]> get value
"19"
192.168.230.21:6379[8]> hincrby mykey myfield 0
(integer) 0
192.168.230.21:6379[8]> hincrby mykey myfield 5
(integer) 5
192.168.230.21:6379[8]> hincrby mykey myfield 7
(integer) 12
192.168.230.21:6379[8]> hincrby mykey myfield01 4
(integer) 4
192.168.230.21:6379[8]> hincrby mykey myfield01 9
(integer) 13
192.168.230.21:6379[8]> hgetall mykey
1) "myfield"
2) "12"
3) "myfield01"
4) "13"
192.168.230.21:6379[8]> hincrby mykey myfield01 -4
(integer) 9
192.168.230.21:6379[8]> hgetall mykey
1) "myfield"
2) "12"
3) "myfield01"
4) "9"
192.168.230.21:6379[8]> 

以上這篇redis incr和incrBy的使用說明就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • mybatis源碼解讀之executor包語句處理功能

    mybatis源碼解讀之executor包語句處理功能

    這篇文章主要介紹了executor包語句處理功能,mybatis中支持三種語句類型,不同語句類型支持的變量符號不同,下文詳細(xì)內(nèi)容,需要的小伙伴可以參考一下
    2022-02-02
  • SpringBoot 整合Redisson重寫cacheName支持多參數(shù)的案例代碼

    SpringBoot 整合Redisson重寫cacheName支持多參數(shù)的案例代碼

    這篇文章主要介紹了SpringBoot 整合Redisson重寫cacheName支持多參數(shù),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-01-01
  • Java實(shí)現(xiàn)多文件壓縮打包的方法

    Java實(shí)現(xiàn)多文件壓縮打包的方法

    這篇文章主要介紹了Java實(shí)現(xiàn)多文件壓縮打包的方法,結(jié)合實(shí)例形式分析了java實(shí)現(xiàn)zip文件壓縮與解壓縮相關(guān)操作技巧,需要的朋友可以參考下
    2017-06-06
  • Apache?SkyWalking?監(jiān)控?MySQL?Server?實(shí)戰(zhàn)解析

    Apache?SkyWalking?監(jiān)控?MySQL?Server?實(shí)戰(zhàn)解析

    這篇文章主要介紹了Apache?SkyWalking?監(jiān)控?MySQL?Server?實(shí)戰(zhàn)解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • java內(nèi)存異常使用導(dǎo)致full?gc頻繁

    java內(nèi)存異常使用導(dǎo)致full?gc頻繁

    Full?GC是Java虛擬機(jī)中垃圾回收的一種方式,它會暫停應(yīng)用程序所有的線程并清理整個堆內(nèi)存。頻繁的Full?GC會導(dǎo)致應(yīng)用程序的性能下降,甚至出現(xiàn)長時間的停頓。Java內(nèi)存異常使用常常是Full?GC頻繁出現(xiàn)的原因之一,如使用大量的靜態(tài)變量、內(nèi)存泄漏等。
    2023-04-04
  • SpringBoot實(shí)現(xiàn)國密SM4加密解密的使用示例

    SpringBoot實(shí)現(xiàn)國密SM4加密解密的使用示例

    在商用密碼體系中,SM4主要用于數(shù)據(jù)加密,本文就來介紹一下SpringBoot實(shí)現(xiàn)國密SM4加密解密的使用示例,具有一定的參考價值,感興趣的可以了解一下
    2023-10-10
  • 使用IDEA創(chuàng)建一個vert.x項目的方法

    使用IDEA創(chuàng)建一個vert.x項目的方法

    這篇文章主要介紹了使用IDEA創(chuàng)建一個vert.x項目的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • Java?Timer與TimerTask類使程序計時執(zhí)行

    Java?Timer與TimerTask類使程序計時執(zhí)行

    這篇文章主要介紹了Java定時器中的Timer和TimerTask的原理。Timer主要用于Java線程里指定時間或周期運(yùn)行任務(wù),它是線程安全的,但不提供實(shí)時性(real-time)保證。接下來就跟隨小編一起深入了解Timer和TimerTask吧
    2022-02-02
  • 最新評論