Redis
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> Redis

Tập lệnh Lua cho Redis tính tổng các giá trị của các khóa

  1. EVAL yêu cầu tối thiểu hai đối số; tập lệnh và số khóa bạn đang chuyển cho tập lệnh. Trong trường hợp này, bạn đang chuyển 0 khóa, nghĩa là tập lệnh có thể được gọi như sau:

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

    hoặc:

    redis-cli --eval sum.lua
    
  2. Cấu trúc vòng lặp của bạn để lặp lại các giá trị được trả về từ KEYS đã sai; Tôi đã sửa nó cho bạn.

  3. Bạn cần chuyển đổi giá trị trả về từ GET từ một chuỗi thành một số bằng cách sử dụng tonumber của Lua chức năng.

Với những thay đổi ở trên được thực hiện, tập lệnh sau sẽ phù hợp với bạn:

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. Làm thế nào để biết sidekiq được kết nối với máy chủ redis?

  2. Cách sử dụng lệnh UNSUBSCRIBE trong Redis 2.6.11

  3. Nhận nhiều giá trị chính từ Redis

  4. Làm cách nào để chạy phân tích bộ nhớ trên AWS ElastiCache?

  5. Redis vấn đề chèn nhiều