redis限流
1、基于Redis的数据结构zset
2、基于Redis的令牌桶算法
具体代码实现:
https://blog.csdn.net/weixin_42645678/article/details/124428393
- 根据tokenKey查询最后一次剩余令牌数last_tokens,如果查不到,说明当前令牌是满的last_tokens=capcity;
- 再去根据timestamp_key查询上次消费令牌的时间戳last_refreshed,不存在就给0;
- 根据上次消费令牌的时间戳和当前时间戳算出时间间隔,再根据令牌生成速率,计算剩余令牌数量 filled_tokens = math.min(capacity, last_tokens+(delta*rate));
- 对比剩余令牌数量和请求的令牌数量,如果满足就通过,否则就不通过;
- 最后更新tokenKey、timestamp_key
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2021-12-02 15. 数组中的第K个最大元素
2021-12-02 43. 字符串相乘
2019-12-02 ZAB协议-Zookeeper一致性协议
2019-12-02 Zookeeper数据类型、节点类型、角色、watcher监听机制