local current_time = redis.call('TIME') local trim_time = tonumber(current_time[1]) - ARGV[2] redis.call('ZREMRANGEBYSCORE', ARGV[1], 0, trim_time) local request_count = redis.call('ZCARD', ARGV[1]) if request_count < tonumber(ARGV[3]) then redis.call('ZADD', ARGV[1], current_time[1], current_time[1] .. current_time[2]) redis.call('EXPIRE', ARGV[1], ARGV[2]) return 0 end return 1