Redis
 sql >> Teknologi Basis Data >  >> NoSQL >> Redis

Skrip Lua untuk Redis yang menjumlahkan nilai kunci

  1. EVAL membutuhkan minimal dua argumen; skrip dan jumlah kunci yang Anda berikan ke skrip. Dalam hal ini, Anda melewatkan kunci nol, artinya skrip dapat dipanggil sebagai berikut:

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

    atau:

    redis-cli --eval sum.lua
    
  2. Struktur loop Anda untuk mengulangi nilai yang dikembalikan dari KEYS tidak benar; Saya telah memperbaikinya untuk Anda.

  3. Anda perlu mengonversi nilai yang dikembalikan dari GET dari string ke nomor menggunakan tonumber Lua's fungsi.

Dengan perubahan di atas, skrip berikut akan bekerja untuk Anda:

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. Kesalahan saat menjalankan skrip Lua dari klien redis

  2. Menyimpan properti objek di redis

  3. Perpotongan dari dua atau lebih himpunan yang diurutkan

  4. Kesalahan:Koneksi redis ke 127.0.0.1:6379 gagal - sambungkan ECONNREFUSED 127.0.0.1:6379

  5. Saya menerima pesan duplikat di aplikasi node.js/socket.io/redis pub/sub saya yang berkerumun