校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 基于Redis的限流器的實現(示例講解)

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

熱門標簽:最簡單的百度地圖標注 玄武湖地圖標注 竹間科技AI電銷機器人 地圖標注費用 地圖標注如何即時生效 小紅書怎么地圖標注店 百度商家地圖標注怎么做 太原營銷外呼系統 西藏教育智能外呼系統價格

1 概述

系統中的接口通常都有限流,比如 70次/秒 ,如何保證我們的接口的調用次數在超過第三方接口限流的時候快速失敗呢?這時候就需要限流器了。下面是筆者用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的限流器的實現(示例講解)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • 詳解Redis實現限流的三種方式
  • 基于Redis實現分布式應用限流的方法
  • redis限流的實際應用
  • redis redisson 限流器的實例(RRateLimiter)

標簽:香港 揚州 澳門 林芝 景德鎮 唐山 廣東 贛州

巨人網絡通訊聲明:本文標題《基于Redis的限流器的實現(示例講解)》,本文關鍵詞  基于,Redis,的,限流,器,實現,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《基于Redis的限流器的實現(示例講解)》相關的同類信息!
  • 本頁收集關于基于Redis的限流器的實現(示例講解)的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 漳平市| 峨眉山市| 临湘市| 六安市| 白玉县| 界首市| 忻城县| 吉林市| 巴南区| 崇信县| 安徽省| 浮梁县| 隆昌县| 南宫市| 宁都县| 庆城县| 麻城市| 灯塔市| 托克逊县| 巴楚县| 拉萨市| 兴海县| 南澳县| 长泰县| 额敏县| 闽清县| 肃宁县| 万州区| 剑阁县| 宣城市| 乾安县| 丹东市| 永新县| 横山县| 阳泉市| 齐河县| 内江市| 克拉玛依市| 巴林右旗| 乐安县| 崇州市|