sql >> Database >  >> NoSQL >> Redis

Lua-script voor Redis dat de waarden van sleutels optelt

  1. EVAL vereist minimaal twee argumenten; het script en het aantal sleutels dat u aan het script doorgeeft. In dit geval geeft u nul-sleutels door, wat betekent dat het script als volgt kan worden aangeroepen:

    redis-cli EVAL "$(cat sum.lua)" 0
    

    of:

    redis-cli --eval sum.lua
    
  2. Uw lusstructuur voor het herhalen van de waarden die worden geretourneerd door KEYS was onjuist; Ik heb het voor je opgelost.

  3. U moet de waarde die wordt geretourneerd door GET . omrekenen van een string naar een getal met Lua's tonumber functie.

Met de bovenstaande wijzigingen zou het volgende script voor u moeten werken:

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


  1. Mongodb en MAMP

  2. mongoDB:$ dateToString-indeling om tijd weer te geven met een interval van 15 minuten

  3. Ingegeven argument moet een enkele string van 12 bytes zijn

  4. Mongodb-shellscript uitvoeren via C#-stuurprogramma