数据结构设计:

使用典型的key-value数据结构

可能想到的最简单自然的方式是下面这样:

K(app_id,ip)=>V(count,startTime,lastTime)

K(app_id,uid,interface_id)=>V(count,startTime,lastTime)

startTime记录的是第一次调用的发生时间,lastTime记录的是最近一次调用的发生时间,他们用来判断是否应该重置计数值count和是否改拒绝调用。