Я создаю свою первую серверную серверную часть Redis script (для отладки), и мой недостаток опыта Lua заставил меня застрять.
По существу, есть набор данных из пар K/V (содержащий ~ 1000 значений), из которых я хочу перечислить все KEYS, которые соответствуют шаблону. Например, в redis-cli:
> KEYS "carlos:*"
1) "carlos:1"
2) "carlos:2"
3) "carlos:3"
4) "carlos:4"
Основываясь на вышеприведенном выходе, я хочу вернуть сумму этих ключей, выполнив Lua script. В настоящее время у меня есть следующие на sum.lua
local sum = 0
local matches = redis.call('KEYS', 'carlos:*')
for unpack(matches)
sum = sum + redis.call('GET', matches)
end
return sum
В то время как приведенный выше script, вероятно, неверен, попытка даже выполнить redis.call('KEYS', 'carlos:*')
сама по себе вызывает следующую ошибку:
root @carlos: ~ # redis-cli EVAL "$ (cat sum.lua)"
(ошибка) ERR неверное количество аргументов для команды "eval"
Я пробовал несколько итераций моего синтаксиса безрезультатно. Любые идеи?
Спасибо