比如 nutz的
https://nutz.cn/yvr/api/v1/topic/:id/replies,
怎么实现单ip请求每小时最多请求100次?
大致一个怎么实现流程
2 回复
用redis的incr嘛.
// 算出当前小时的字符串表达式
String hourStr = new SimpleDateFormat("yyyyMMdd_HH").format(new Date());
// 获取ip
String ip = Lang.getIp(req);
// 拼出redis的key
String key = "api:limit:" + hourStr + ":" + ip;
long count = jedis().incr(key);
if (key > 100)
return HTTP_403;
else if (key == 1)
jedis().expire(key, 3600); // 过期就自动删
添加回复
请先登陆