Redis
 sql >> база данни >  >> NoSQL >> Redis

Lua скрипт за Redis, който сумира стойностите на ключовете

  1. EVAL изисква минимум два аргумента; скрипта и броя на ключовете, които предавате на скрипта. В този случай предавате нулеви ключове, което означава, че скриптът може да бъде извикан, както следва:

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

    или:

    redis-cli --eval sum.lua
    
  2. Вашата структура на цикъла за повторение на стойностите, върнати от KEYS беше неправилно; Поправих го за вас.

  3. Трябва да преобразувате стойността, върната от GET от низ към число, използвайки tonumber на Lua функция.

С направените по-горе промени, следният скрипт трябва да работи за вас:

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. Данни за пролетната сесия Redis - Вземете валидни сесии, текущ потребител от Redis Store

  2. Изтичането на известието за ключовото пространство на Redis не се задейства

  3. Библиотеката hiredis Redis създава ли своя собствена нишка за асинхронни обратни извиквания

  4. Мащабируем начин за регистриране на данни за заявка на страница от PHP приложение?

  5. Опашката на Redis с иск изтича