国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Redis > 正文

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

2020-10-28 21:34:50
字體:
來源:轉載
供稿:網友

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的限流器的實現(示例講解)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 吉林省| 巴东县| 广丰县| 海南省| 仁怀市| 林甸县| 辽中县| 金阳县| 黎川县| 金川县| 肃宁县| 平阴县| 大渡口区| 山东省| 永福县| 诸暨市| 日照市| 烟台市| 高碑店市| 莎车县| 双牌县| 延津县| 本溪| 平乡县| 洪江市| 大埔区| 会昌县| 巴塘县| 班玛县| 密云县| 静乐县| 滦南县| 墨玉县| 江孜县| 深圳市| 绍兴市| 永安市| 延边| 嘉峪关市| 阿巴嘎旗| 德兴市|