sql >> Database teknologi >  >> NoSQL >> Redis

Lua script til Redis som summerer værdierne af nøgler

  1. EVAL kræver mindst to argumenter; scriptet og antallet af nøgler, du sender til scriptet. I dette tilfælde sender du nul nøgler, hvilket betyder, at scriptet kan aktiveres som følger:

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

    eller:

    redis-cli --eval sum.lua
    
  2. Din sløjfestruktur til iteration over værdierne returneret fra KEYS var forkert; Jeg har rettet det for dig.

  3. Du skal konvertere den returnerede værdi fra GET fra en streng til et tal ved hjælp af Luas tonumber funktion.

Med ovenstående ændringer, bør følgende script fungere for 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 $atan

  2. Forbedre MongoDB aggregeringsstruktur

  3. Sådan konfigureres MongoDb-samlingsnavn til en klasse i Spring Data

  4. Hvordan kan jeg få værdien fra Redis og sætte den i en variabel i NGiNX?