基于 Redis-Cell 模块的限流措施
#Redis #限流
Redis 在 4.0 之后提供了一个限流模块,叫 Redis-Cell,该模块使用了漏斗算法,并提供了原子的限流指令;
bash
cl.throttle pano:reply 15 30 60 1
1) (integer) 0 # 0表示允许 1表示拒绝
2) (integer) 15 # 漏斗容量 capacity
3) (integer) 14 # 漏斗剩余空间 left_quota
4) (integer) -1 # 如果被拒绝了下次重试间隔(秒)
5) (integer) 2 # 多长时间后,漏斗完全空出来解释一下:
cl.throttle是限流指令;pano:reply这个是 key,业务里可以放某种业务行为;15指漏斗容量 capacity,也是一开始就可以使用的数量,之后才会被限流;30 60前者指动作数量,后者指时间,结合起来就是限流频次,当前是 60s 内可以进行 30 个操作;1可选参数,默认=1,可以不写,这里应该是每次漏水的数量,如果修改了,上一步的效率就会被影响;