限流脚本(window=60000ms,limit=100):local key = KEYS[1] local now = tonumber(ARGV[1]) local window = tonumber(ARGV[2]) local limit = tonumber(ARGV[3]) redis.call('ZADD', key, now, now) redis.call('ZREMRANGEBYSCORE', key, 0, now - window) local count = tonumber(redis.call('ZCARD', key)) redis.call('EXPIRE', key, math.floor(window/1000)) if count <= limit then return {1, limit - count} else return {0, 0} end 执行示例:EVALSHA <sha> 1 rate:uid:123 1690000000000 60000 100

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部