狠狠色丁香婷婷久久综合麻豆,国产99久久久久久免费看,与亲女洗澡时伦了视频,一面膜胸口一面膜下免费

Redis實現高并發計數器

業務需求中經常有需要用到計數器的場景:譬如一個手機號一天限制發送5條短信、一個接口一分鐘限制多少請求、一個接口一天限制調用多少次等等。使用redis的Incr自增命令可以輕松實現以上需求。以一個接口一天限制調用次數為例:

托克托ssl適用于網站、小程序/APP、API接口等需要進行數據傳輸應用場景,ssl證書未來市場廣闊!成為創新互聯的ssl證書銷售渠道,可以享受市場價格4-6折優惠!如果有意向歡迎電話聯系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!

 /**
 * 是否拒絕服務
 * @return
 */
 private boolean denialOfService(String userId){
 long count=JedisUtil.setIncr(DateUtil.getDate()+"&"+userId+"&"+"queryCarViolation", 86400);
 if(count<=10){
  return false;
 }
 return true;
 }
/**
 * 查詢違章
 * @param plateNumber車牌
 * @param vin 車架號
 * @param engineNo發動機
 * @param request
 * @param response
 * @throws Exception
 */
 @RequestMapping("/queryCarViolationList.json")
 @AuthorizationApi
 public void queryCarViolationList(@CurrentToken Token token,String plateNumber,String vin,
    String engineNo,HttpServletRequest request,HttpServletResponse response) throws Exception {
   String userId=token.getUserId();
      //超過限制,攔截請求
   if(denialOfService(userId)){
  apiData(request, response, ReqJson.error(CarError.ONLY_5_TIMES_A_DAY_CAN_BE_FOUND));
  return;
   }
 //沒超過限制,業務邏輯……
 }

每次調用接口之前,先獲得下計數器自增后的值,如果小于限制,放行,執行后面的代碼。如果大于限制,則攔截掉。

JedisUtil工具類:

public class JedisUtil {
 protected final static Logger logger = Logger.getLogger(JedisUtil.class);
 private static JedisPool jedisPool;
 
 @Autowired(required = true)
 public void setJedisPool(JedisPool jedisPool) {
 JedisUtil.jedisPool = jedisPool;
 }
 /**
 * 對某個鍵的值自增
 * @author liboyi
 * @param key 鍵
 * @param cacheSeconds 超時時間,0為不超時
 * @return
 */
 public static long setIncr(String key, int cacheSeconds) {
 long result = 0;
 Jedis jedis = null;
 try {
  jedis = jedisPool.getResource();
  result =jedis.incr(key);
  if (cacheSeconds != 0) {
  jedis.expire(key, cacheSeconds);
  }
  logger.debug("set "+ key + " = " + result);
 } catch (Exception e) {
  logger.warn("set "+ key + " = " + result);
 } finally {
  jedisPool.returnResource(jedis);
 }
 return result;
 }
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持創新互聯。

文章題目:Redis實現高并發計數器
本文鏈接:http://www.hntjjpw.com/article8/ihsiop.html

成都網站建設公司_創新互聯,為您提供標簽優化動態網站品牌網站設計ChatGPT虛擬主機網站改版

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

外貿網站建設
主站蜘蛛池模板: 武冈市| 山阳县| 湖口县| 喀喇沁旗| 泸溪县| 延庆县| 永宁县| 建瓯市| 雅安市| 深水埗区| 连平县| 贵定县| 冀州市| 宁化县| 常宁市| 景泰县| 清水河县| 无为县| 溆浦县| 嘉祥县| 尼木县| 同德县| 武威市| 连州市| 大庆市| 林西县| 和顺县| 临汾市| 大厂| 尖扎县| 潍坊市| 花莲县| 禄丰县| 黄陵县| 陆丰市| 峡江县| 安徽省| 泽州县| 榆中县| 静安区| 贡山|