redis.log(redis.LOG_NOTICE,"------start---------");
--输出用户传递进来的参数
for i,v in ipairs(KEYS) do
redis.log(redis.LOG_NOTICE,"limit:key".. i .. " = " ..v);
end
for i,v in ipairs(ARGV) do
redis.log(redis.LOG_NOTICE,"limit:argv".. i .. " = " ..v);
end
--key
local limitKey = tostring(KEYS[1])
redis.log(redis.LOG_NOTICE,"limitKey:".. limitKey);
--时间
local expireMs = tonumber(ARGV[1])
redis.log(redis.LOG_NOTICE,"expireMs:".. expireMs);
--setnx不存在时设置,存在时设置错误
if (redis.call('setnx', limitKey, 1) == 1) then
redis.log(redis.LOG_NOTICE,"Lock success");
--设置有效期
redis.call('expire', limitKey, expireMs)
redis.log(redis.LOG_NOTICE,"------end---------");
return true;
else
redis.log(redis.LOG_NOTICE,"Lock fail");
redis.log(redis.LOG_NOTICE,"------end---------");
return false;
end