В режиме кластера redis Возвращается ли значение SHA при загрузке сценария? - PullRequest
0 голосов
/ 13 ноября 2018

Я использую скрипт lua для выполнения 2 операций, принадлежащих одному ключу.Запуск Redis в режиме кластера.Использование библиотеки java jedis для подключения к кластеру Redis.

Синтаксис для загрузки скрипта lua такой, как показано ниже

jedisCluster.loadScript(<ScriptString>, <Key>);

Возвращает значение SHA, которое я могу использовать в функции evalsha на кластере джедаев, как показано ниже

jedisCluster.evalsha(<ShaValue>, <Key Count>, <key>)

Я обрабатываю ошибку NoScript при выполнении вышеуказанного метода и снова загружаю скрипт.

Вопрос: Если я загружаю один и тот же скрипт с разными значениями ключа, будет ли значение SHA другим?Если два ключа оказываются в разных кластерах, то значение SHA отличается?

Я пытаюсь сохранить это значение SHA в строке, используйте его для всех ключей.

Я знаю, что SHAСтрока будет такой же, но я не уверен, что перед созданием SHA будет добавлена ​​какая-либо дополнительная информация в скрипт.

1 Ответ

0 голосов
/ 13 ноября 2018

Сумма SHA1 сценария всегда будет одинаковой для одного и того же сценария (вы также можете вычислить его извне, например, с помощью инструмента sha1sum).Это остается верным в режимах одного экземпляра и кластера, независимо от количества ключей и аргументов, которые скрипт получает в качестве входных данных.

...