-
EVALmembutuhkan minimal dua argumen; skrip dan jumlah kunci yang Anda berikan ke skrip. Dalam hal ini, Anda melewatkan kunci nol, artinya skrip dapat dipanggil sebagai berikut:redis-cli EVAL "$(cat sum.lua)" 0atau:
redis-cli --eval sum.lua -
Struktur loop Anda untuk mengulangi nilai yang dikembalikan dari
KEYStidak benar; Saya telah memperbaikinya untuk Anda. -
Anda perlu mengonversi nilai yang dikembalikan dari
GETdari string ke nomor menggunakantonumberLua's fungsi.
Dengan perubahan di atas, skrip berikut akan bekerja untuk Anda:
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