Как передать переменную в сценарий lua из Java? (io.lettuce.core) - PullRequest
0 голосов
/ 06 марта 2019

У меня есть такой скрипт lua, который выполняет команду hgetall на удаленном кластере redis:

String shaFindAccount = syncCommands.scriptLoad("local hgetAllKeys = function(key) \n" +
                                                "local acc = redis.call('HGETALL', key)\n" +
                                                "return acc\n" +
                                                "end\n");

Я хочу передать переменную в вызов hgetall. Вот как выглядит мой eval оператор, называющий приведенный выше скрипт:

list = syncCommands.evalsha(shaFindAccount, ScriptOutputType.MULTI, key);

Где key - уникальный идентификатор (первичный ключ) в соотв. Прямо сейчас эта функция возвращает пустой список.

Как передать переменную java в приведенный выше скрипт lua с помощью io.lettuce.core? (Нет проблем с подключением, я могу использовать аналогичный запрос с жестко заданным значением key, и он работает)

1 Ответ

1 голос
/ 19 марта 2019

Вы можете найти пример в этом модульном тесте.Кажется, вы должны называть это так:

list = syncCommands.evalsha(digest, MULTI, new String[0], key));

, и вы должны ссылаться на аргумент как ARGV [1].

...