redis作為計數器的使用

2021-10-12 05:04:57 字數 660 閱讀 1464

剛剛入行的小白,什麼都不太懂,最近某活動要求獎品領取量上限為20萬,就想到用redis來實現,**如下:

**片段

string rediskey=

"activity"

;redisutil.

setstring

(keystring,

"0")

;//初始值為0

int countnum =0;

//每月限量20萬,所以每次使用者進來都更新一下失效時間,為當月剩餘時間

long hlong =

86400

*getcurrentmonthday()

- dateutils.

getfragmentinseconds

(calendar.

getinstance()

, calendar.month)

;int hint = hlong.

intvalue()

;if(redisutil.

i***ists

(keystring)

)else

}public

static

intgetcurrentmonthday()

over

使用Redis作為簡單的限流計數器幾種實現策略

在實現簡單的介面限流或者商品秒殺時,一般需要redis來作為計數器。但是在併發場景下,使用不當的可能會踩坑。這裡主要的坑就是 使用不當,會造成key永久有效,永不過期,導致value一直在increment,無法起到限流的作用。下面就以反面例子說明 本文使用的是spring data redis的r...

redis的計數器應用

redis的計數器應用 唯一計數是 系統中十分常見的乙個功能特性,例如 需要統計每天訪問的人數 unique visitor 也就是 uv 計數問題很常見,但解決起來可能十分複雜 一是需要計數的量可能很大,比如大型的站點每天有數百萬的人訪問,資料量相當大 二是如果通過資料庫表來存資料,比如記錄一篇文...

使用Redis計數器防止併發請求

最近專案中有個需求,簡訊傳送的併發請求問題 業務需求是需要限制乙個號碼一分鐘內只能獲取一次隨機碼,之前的實現是簡訊傳送請求過來後,先去資料庫查詢傳送記錄,根據上一次的簡訊傳送時間和當前時間比較,如果時間差小於一分鐘,則提示簡訊獲取頻繁,如果超過一分鐘,則傳送簡訊,並記錄簡訊傳送日誌。簡訊傳送是乙個很...