sql >> Databáze >  >> NoSQL >> Redis

Lua skript pro Redis, který sčítá hodnoty klíčů

  1. EVAL vyžaduje minimálně dva argumenty; skript a počet klíčů, které skriptu předáváte. V tomto případě předáváte nulové klíče, což znamená, že skript lze vyvolat následovně:

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

    nebo:

    redis-cli --eval sum.lua
    
  2. Struktura smyčky pro iteraci hodnot vrácených z KEYS byl nesprávný; Opravil jsem to pro vás.

  3. Je třeba převést hodnotu vrácenou z GET z řetězce na číslo pomocí Lua tonumber funkce.

Po provedení výše uvedených změn by vám měl fungovat následující skript:

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. Správa připojení k redis z Pythonu

  2. jak stáhnout soubor uložený v gridFS pomocí nodeJS

  3. Funkce Google Cloud vyprší při připojování k interní IP adrese Redis na Compute Engine

  4. Která, pokud vůbec nějaká, z NoSQL databází může poskytnout proud *změn* v sadě výsledků dotazu?