Почему существуют ключи и массивы ARGV при вызове скриптов Redis Lua?
при вызове Lua-скриптов из Redis можно передавать значения в двух массивах: KEYS и ARGV. В чем разница? Как Redis обрабатывает значения в массиве ключей? Что делать, если в моем скрипте мне придется использовать ключи, динамически генерируемые во время выполнения?
1 ответов
на все ваши вопросы отвечают в EVAL
страница, но так как ты просил...:
в чем разница?
KEYS
используется для передачи имен ключей, тогда как ARGS
должно быть что-то еще. Это не совсем соблюдается (т. е. в большинстве случаев вы были бы в порядке, смешивая их), но может привести к потенциальным проблемам, если не следовать.
как Redis обрабатывает значения в массиве ключей?
в содержание KEYS
проверяются, чтобы убедиться, что все ключи доступны для осколка Redis, на котором выполняется сценарий. Этот механизм позволяет запускать сценарии в развертывании кластера Redis.
что делать, если в моем скрипте я должен использовать ключи, динамически генерируемые во время выполнения?
см. предыдущие ответы-это выполнимо, но вы идете против рекомендаций. Ваш скрипт будет безопасен для запуска только на автономном экземпляре Redis и с тех пор поведение не указано,оно может нарушиться в будущих выпусках.