local key = KEYS[1];
local increment = tonumber(ARGV[1]) or 0;
local ttl = tonumber(ARGV[2]) or 0;

if redis.call("EXISTS", key) == 1 then
    redis.call("INCRBY", key, increment);
    local sum = tonumber(redis.call("GET", key)) or 0;
    -- extend the life of this counter by ttl seconds
    redis.call("EXPIRE", key, ttl);
    return sum;
else
    return nil;
end
