redis可以很方便的實現短期的資料儲存和使用。比如限制一段時間內的訪問次數之類的,如果用關係型資料庫來做稍顯麻煩,這裡用剛剛寫的新需求做個小例子。
需求:一分鐘內訪問超過3次,提示請稍候
/**
* 通過快取查詢身份證在一分鐘內的刷卡次數
** @param idcard 身份證號
* @return
*/public
intcheckcount
(string idcard)
else
if(system.
currenttimemillis()
-(long) ret.
get(
"lasttime"
)>
60000l)
if(falg)
//快取不為空
count =
(int
) ret.
get(
"count");
ret.
put(
"count"
, count +1)
;return count;
}
從第一次訪問起,一分鐘內所有的請求次數都會記錄下。只要從redis中取出資料做相應的判斷即可 限制介面的訪問次數
情景 傳送手機驗證碼或者郵箱驗證碼時限制規則 一分鐘只可以發一次,一天內也有次數限制。以防止惡意訪問,降低伺服器壓力。解決思路 獲取使用者ip位址,判斷此ip是否首次訪問,如果是首次訪問,在redis建立minkey,daykey.並設定minkey過期60s,daykey為86400s,也就是24...
Redis應用 限制訪問頻率
如果 收到惡意攻擊,訪問頻率可能在某個時間段特別高可能,影響 效能,嚴重還能能導致往 直接崩潰 的訪問頻率限制可以解決這個問題,1 實現訪問 例如限制每個使用者在一段事件內只能訪問一定數量的次數如 一分鐘只能訪問100次,思路 key可以使用 rete.limiting ip value 使用數值,...
Nginx限制訪問次數和併發數
nginx限制訪問速率和最大併發連線數模組 limit 防止ddos攻擊 zone one或allips 表示設定名為 one 或 allips 的儲存區,大小為10兆位元組 rate 2r s 允許1秒鐘不超過2個請求 limit conn log level error limit conn s...