Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Skrypt Lua dla Redisa, który sumuje wartości kluczy

  1. EVAL wymaga minimum dwóch argumentów; skrypt i liczbę kluczy, które przekazujesz do skryptu. W tym przypadku przekazujesz klucze zerowe, co oznacza, że ​​skrypt można wywołać w następujący sposób:

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

    lub:

    redis-cli --eval sum.lua
    
  2. Twoja struktura pętli do iteracji po wartościach zwróconych z KEYS był niepoprawny; Naprawiłem to za Ciebie.

  3. Musisz przekonwertować wartość zwróconą z GET od ciągu do liczby za pomocą tonumber Lua funkcja.

Po wprowadzeniu powyższych zmian następujący skrypt powinien działać dla Ciebie:

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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Używanie redis jako pamięci podręcznej LRU dla postgres

  2. Statystyki Redis

  3. Push do kolejki Laravel z zewnątrz Laravel (NodeJS)

  4. Jak stworzyć RedisCacheManager w spring-data 2.0.x

  5. Zwróć listę hgetall z redis w nodejs