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

Eksekusi async dari perintah redis

Saya kira modul asyncjs yang Anda gunakan adalah yang didokumentasikan di:https://github.com/fjakobs/async.js

Dalam kode Anda:

  • daftar() adalah generator. Ini memungkinkan array untuk diulang oleh asyncjs. Array adalah array nilai.
  • call() adalah mapper yang memanggil setiap item. Oleh karena itu, item harus dapat dipanggil (yaitu, harus berupa panggilan balik).
  • end() adalah titik akhir terminasi, dipanggil saat iterasi selesai. Sebagai parameter, Anda hanya mendapatkan nilai terakhir dari urutan (bukan seluruh urutan).

Anda mendapatkan "[TypeError:Object true has no method 'apply'] " kesalahan karena daftar yang Anda buat bukanlah daftar panggilan balik. Ini adalah daftar nilai.

Berikut adalah beberapa kode yang harus melakukan apa yang Anda inginkan:

var redis = require("redis");
var client = redis.createClient();
var async = require("asyncjs");

function main() {

  var siteId = 1;

  async
    .list(['x','y','z'])
    .map( function (item,next) {
      client.hincrby('traffic:' + siteId, item, 1, function (err,res) {
        next(err,res)
      })
    })
    .toArray( function(err,res) {
      console.log(err); 
      console.log(res); 
    });
}

main()

Harap dicatat di sini kami menggunakan map() sebagai ganti call(), dan toArray() sebagai ganti end().




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mengatur sesi musim semi di server redis

  2. Cara yang efisien untuk memetakan data dari Redis

  3. Skrip Lua dan redis - cara menguji nilai None

  4. Siaran Redis Pub-Sub atau Socket.IO

  5. Mengetahui kapan pekerja resque telah menyelesaikan pekerjaan