-
EVAL
少なくとも2つの引数が必要です。スクリプトと、スクリプトに渡すキーの数。この場合、ゼロキーを渡すことになります。つまり、スクリプトは次のように呼び出すことができます。redis-cli EVAL "$(cat sum.lua)" 0
または:
redis-cli --eval sum.lua
-
KEYS
から返された値を反復処理するためのループ構造 正しくありませんでした。修正しました。 -
GET
から返された値を変換する必要があります Luaのtonumber
を使用して文字列から数値に変換する 機能。
上記の変更を行うと、次のスクリプトが機能するはずです。
local sum = 0
local matches = redis.call('KEYS', 'carlos:*')
for _,key in ipairs(matches) do
local val = redis.call('GET', key)
sum = sum + tonumber(val)
end
return sum