redis 逆天问题 每多少分钟限制多少次

3 天前
 chenfang

目前有一个功能是 界面可以填写每多少分钟限制多少次展示

这两个都是可以随意设置的,也就说界面可以随时修改这个值,得保证数据结构支持这种操作

目前能想到的结构是:

我有点担心如果分钟太多的话,性能会不会比较差

所以有别的数据结构和算法来解决这个问题么?

1560 次点击
所在节点    程序员
7 条回复
dapang1221
3 天前
哎这不就是滑动窗口限流,可以试试 zset
lesismal
3 天前
lua 成熟的实现应该挺多的,golang 里这个就可以,拿去用你的语言调用就可以了:
https://github.com/go-redis/redis_rate/blob/v10/lua.go
chenfang
3 天前
@dapang1221 感谢 我去查查
chenfang
3 天前
@lesismal 感谢我去看下
wh469012917
3 天前
setEx(key, value, expires)
key:任务 id
value:次数
expires:分钟数
crysislinux
3 天前
简单的就是 5 楼说的,性能也很高。缺点就是严格来说并不满足每分钟多少这个条件。
要时间轴上任意截一分钟都满足需求,那就得滑动窗口。
sssjjjjj
2 天前
java 的话可以看看 redisson 里的 rateLimiter

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1089526

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX