sql >> Databasteknik >  >> NoSQL >> Redis

Lua script för Redis som summerar värdena på nycklar

  1. EVAL kräver minst två argument; skriptet och antalet nycklar du skickar till skriptet. I det här fallet skickar du noll nycklar, vilket innebär att skriptet kan anropas enligt följande:

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

    eller:

    redis-cli --eval sum.lua
    
  2. Din loopstruktur för att iterera över värdena som returneras från KEYS var felaktig; Jag har fixat det åt dig.

  3. Du måste konvertera värdet som returneras från GET från en sträng till ett nummer med Luas tonumber funktion.

Med ändringarna ovan bör följande skript fungera för dig:

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 Date() Metod

  2. Fjäderkänga + redis

  3. Uppdatera ett värde i MongoDB baserat på dess nuvarande värde

  4. Hur kan jag sortera efter att nollor senast beställdes i mongodb?