local function put (key, value, lock_id, lifetime_milliseconds, idle_timeout_milliseconds) local result = insert(key, value, lock_id, lifetime_milliseconds, idle_timeout_milliseconds, {}) if contains_value(result, "already_exists") then return update(key, value, lock_id, lifetime_milliseconds, idle_timeout_milliseconds, {}) end return result end return scriptResult(put(KEYS[1], ARGV[3], ARGV[4], parseOptionalNumber(ARGV[5]), parseOptionalNumber(ARGV[6])))