Redis-py автоматически использует evalsha для зарегистрированных скриптов?
Когда я регистрирую скрипт Lua для клиента Redis:
script = redis_client.register_script(lua_string)
и затем запустите скрипт с клиентом по умолчанию:
script(keys, args)
это автоматически использует evalsha для внутренних целей или каждый раз отправляет весь сценарий на сервер?
1 ответ
Решение
Да. Вот (сокращенный) исходный код:
class Script(object):
def __call__(self, keys=[], args=[], client=None):
if isinstance(client, BasePipeline):
# Make sure the pipeline can register the script before executing.
client.scripts.add(self)
return client.evalsha(self.sha, len(keys), *args)