转自:https://blog.youkuaiyun.com/qq_30947533/article/details/78844709
方法1:数据访问量大的话 用redis来做,用户在调用短信接口时,先根据用户id去查一下次数,如果没有id这个key,证明就是1分钟内首次发送,发送后,在redis中记录一个key为id的次数为一次,再为这个key加上过期时间1分钟
方法2:在filter层加一个过滤器,拦截所有的请求,解析出请求的用户,然后通过缓存,获取到该用户当前已访问次数,后面逻辑判断就不说了,主要问题其实是集中在缓存这里,其他的都不想干。
缓存,要求最好能够自动超时回收,也就是说比如你想设定三分钟内限制访问次数,那么你记录的缓存有效期就三分钟就好了,过了三分钟缓存自动失效,计数器也就重新从0开始了。
优先推荐redis,如果不想引入第三方工具,那么Guava Cache也就可以满足需求的。
本文介绍了两种短信接口访问频率限制的方法。方法一使用Redis记录用户的访问次数并设置一分钟的过期时间;方法二则是在过滤器层实现,利用缓存记录用户访问次数,并设置三分钟的自动超时回收。
3285

被折叠的 条评论
为什么被折叠?



