91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

基于Redis的限流器的實現(示例講解)

發布時間:2020-08-22 14:43:12 來源:腳本之家 閱讀:310 作者:秦霜 欄目:數據庫

1 概述

系統中的接口通常都有限流,比如 70次/秒 ,如何保證我們的接口的調用次數在超過第三方接口限流的時候快速失敗呢?這時候就需要限流器了。下面是筆者用redis實現限流器的流程圖。

基于Redis的限流器的實現(示例講解)

2 代碼

/**
 * 獲取限流權限
 * @param key
 * @param millisecond 毫秒數
 * @param limitCount 限流次數
 * @return
 */
public static boolean getCurrentLimiting(String key, Long millisecond, Integer limitCount){
  try {
    boolean currentLimitingLock = RedisDistributeLockUtil.lock(key);
    if(currentLimitingLock){
      Long llen = RedisClient.llen(getCurrentLimitingRedisKey(key));
      if(llen < limitCount){
        RedisClient.lpush(getCurrentLimitingRedisKey(key), DateUtil.current(false) + "");
        return true;
      }else{
        Long lastTime = Long.parseLong(RedisClient.lindex(getCurrentLimitingRedisKey(key), -1));
        if((DateUtil.current(false) - lastTime) >= millisecond){
          RedisClient.lpush(getCurrentLimitingRedisKey(key), DateUtil.current(false) + "");
          RedisClient.ltrim(getCurrentLimitingRedisKey(key), 0, limitCount);
          return true;
        }
      }
    }
  }finally {
    RedisDistributeLockUtil.unlock(key);
  }
  return false;
}

以上這篇基于Redis的限流器的實現(示例講解)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

峨山| 浑源县| 石楼县| 西乌珠穆沁旗| 醴陵市| 邢台市| 昌乐县| 阳高县| 闵行区| 乾安县| 子洲县| 南皮县| 竹北市| 昌吉市| 南充市| 普格县| 咸阳市| 普定县| 乐昌市| 寿宁县| 阿合奇县| 黑龙江省| 文化| 全州县| 葵青区| 宁海县| 洛扎县| 庆元县| 合作市| 伊川县| 福贡县| 女性| 藁城市| 龙海市| 滨海县| 哈尔滨市| 湟源县| 安化县| 枞阳县| 庆城县| 安顺市|