亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

基于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

姜堰市| 济南市| 蒙城县| 乌什县| 大丰市| 饶河县| 保德县| 宝应县| 霸州市| 苗栗县| 阿坝县| 钦州市| 朝阳县| 塔城市| 阳西县| 海城市| 延安市| 鄂州市| 永德县| 宝山区| 广东省| 房产| 凤山县| 桃园市| 永修县| 德昌县| 额敏县| 乌拉特中旗| 曲水县| 个旧市| 汉沽区| 桓仁| 云林县| 门源| 徐水县| 敖汉旗| 博客| 会宁县| 侯马市| 陕西省| 苍梧县|