目前有一个功能是 界面可以填写每多少分钟限制多少次展示
这两个都是可以随意设置的,也就说界面可以随时修改这个值,得保证数据结构支持这种操作
目前能想到的结构是:
我有点担心如果分钟太多的话,性能会不会比较差
所以有别的数据结构和算法来解决这个问题么?
1
dapang1221 46 天前
哎这不就是滑动窗口限流,可以试试 zset
|
2
lesismal 46 天前
lua 成熟的实现应该挺多的,golang 里这个就可以,拿去用你的语言调用就可以了:
https://github.com/go-redis/redis_rate/blob/v10/lua.go |
3
chenfang OP @dapang1221 感谢 我去查查
|
5
wh469012917 46 天前
setEx(key, value, expires)
key:任务 id value:次数 expires:分钟数 |
6
crysislinux 46 天前
简单的就是 5 楼说的,性能也很高。缺点就是严格来说并不满足每分钟多少这个条件。
要时间轴上任意截一分钟都满足需求,那就得滑动窗口。 |
7
sssjjjjj 45 天前
java 的话可以看看 redisson 里的 rateLimiter
|
8
liuhai233 42 天前
zset 就行了吧,简单直接
|