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)
Другие вопросы по тегам