游戏天空论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 28|回复: 0

固定窗口限流

[复制链接]

2428

主题

2428

帖子

7668

积分

论坛元老

Rank: 8Rank: 8

积分
7668
发表于 2023-10-28 15:47:54 | 显示全部楼层 |阅读模式
Redis 中的固定窗口限流是使用 incr 命令实现的,incr 命令通常用来自增计数;如果我们使用时间戳信息作为 key,自然就可以统计每秒的请求量了,以此达到限流目的。
这里有两点要注意。
1. 对于不存在的 key,第一次新增时,value 始终为 1。
2. INCR 和 EXPIRE 命令操作应该在一个原子操作中提交,以保证每个 key 都正确设置了过期时间,不然会有 key 值无法自动删除而导致的内存溢出。
由于 Redis 中实现事务的复杂性,所以这里直接只用 lua 脚本来实现原子操作。下面是 lua 脚本内容。
TG:@cdncloudlisiwen
QQ:2832254781

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|游戏天空论坛 ( 陕ICP备13009885号 )

GMT+8, 2024-5-3 07:53 , Processed in 0.125000 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表