美文网首页
(9)Redis 如何限制短信发送

(9)Redis 如何限制短信发送

作者: hedgehog1112 | 来源:发表于2020-12-21 07:29 被阅读0次

    题目:同一IP一分钟内只能发送100次

    概要:1、窗口、2令牌桶 、redis+lua 3漏斗

    一、固定/滑动窗口

    1、固定窗口:string存,IP为key,value自增存次数>100就限制。设置超时时间1分钟,1分钟后key消失。

        性能好,实现简单,耗内存少。

        不精准:第一个请求0s到达,剩下99在60s,61s来100个请求,60-61s有199

    2、滑动窗口:IP为key,value=list(每次访问的时间戳),每次访问查询list,拿前100个跟当前时间戳比较

        时间控制精确,性能不好,实现相对复杂,耗内存多

    二、令牌桶

    令牌桶:限制平均传输速率外,允许突发流量

    漏斗:强行限制传输速率

    RateLimit限流  、 redis+lua :https://www.jianshu.com/p/cb3cc0c21f71

    三、漏斗

    redis4.0提供漏斗算法Redis Cell,redis只提供命令cl.throttle

    被拒绝就丢弃或重试。cl.throttle连重试时间都算好,直接取返回结果数组的第四个值进行sleep,如不想阻塞线程,异步定时任务重试

    实现

    1、定义,根据上次水流动的时间,腾出已流出的空间

    2、漏斗限速方法

    https://blog.csdn.net/weixin_48502062/article/details/109369706

    令牌桶  https://www.cnblogs.com/orangesea/articles/11299557.html

    漏斗  https://mp.weixin.qq.com/s/3d_USEzLf-eLSBj_qS9jng

    相关文章

      网友评论

          本文标题:(9)Redis 如何限制短信发送

          本文链接:https://www.haomeiwen.com/subject/hphtwctx.html