1. 程式人生 > >redis實戰教程(二)- 高併發、大流量限速

redis實戰教程(二)- 高併發、大流量限速

關鍵程式碼如下:
@Override
public void rateLimit(String key, int unitTime, long rate) {
Jedis jedis = getJedis();
Long i = jedis.setnx(key, "1");
if (i == 1L) {// 第一次設定過期時間
jedis.expire(key, unitTime);
}
Long incr = jedis.incr(key);
returnRes(jedis);
if (incr > rate) {
throw new RuntimeException(key + "在[" + unitTime + "]s  內訪問超過[" + rate + "]次");
}
}