-
EVAL
कम से कम दो तर्कों की आवश्यकता है; स्क्रिप्ट और चाबियों की संख्या जिसे आप स्क्रिप्ट में पास कर रहे हैं। इस मामले में, आप शून्य कुंजी पास कर रहे हैं, जिसका अर्थ है कि स्क्रिप्ट को निम्नानुसार लागू किया जा सकता है: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