1.编写lua脚本my.lua
local key = KEYS[1] --限流KEY(一秒一个)
local limit = tonumber(ARGV[1]) --限流大小
local current = tonumber(redis.call('get', key) or "0")
if current + 1 > limit then --如果超出限流大小
return 0
else --请求数+1,并设置2秒过期
redis.call("INCRBY", key,"1")
redis.call("expire", key,"2")
return 1
end
2.把写好的lua脚本my.lua放到windows redis目录下面就是和redis-cli.exe同级目录
|
3.打开windows cmd命令窗口执行命令
1 |
|
上面命令解释来源:https://www.redisgreen.net/blog/intro-to-lua-for-redis-programmers/
1 |
|
当传的值只有一个值时如下:
redis lu脚本如下:
--whether access within 5 seconds
redis.call('SETEX',KEYS[1], 50000,ARGV[1]);
return 2000;
传两个key,一个argv时如下: