Абсолютно новый для lua .. только что начался 1 час назад :). Я хочу создать randomid и убедиться, что ключ с таким же идентификатором не существует в redis. Так я написал ниже код в Luaуникальный случайный ключ redis lua script
local get_random_id
get_random_id = function(id)
local id_exists = redis.call("EXISTS", id)
if id_exists == 0 then
return id
end
local newid = randomstring(3)
get_random_id(newid)
end
local id = randomstring(3)
local existingid = "abc"
return get_event_id(existingid)
Он отлично работает, если я передать ключ, который не существует в Redis он возвращает меня новый случайный ключ. Однако, если ключ существует в redis, он возвращает мне ноль.
Дополнительная информация: Я MONITOR Redis и нашел скрипт генерации случайной строки и проверки в Redis, но как-то это возвращение всухую
Спасибо за ответ, но если я верну туда, что, если это число также существует в redis? Я думаю, что я где-то испортил код. Что я хочу, чтобы он генерировал случайное число и проверял существование в redis, пока я не получу номер, который не существует –
и, кстати, если я сменил функцию на локальную функцию get_random_id (id) он генерирует ошибку «Сценарий попытался получить доступ к неистинной глобальной переменной», поскольку интерпретатор redis не смог получить глобальные переменные –
Откажитесь от моего первого комментария .. Может быть, я спал .. спасибо за ответ .. он работает :) –