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

Thực thi bất đồng bộ các lệnh redis

Tôi cho rằng mô-đun asyncjs bạn sử dụng là mô-đun được ghi lại tại:https://github.com/fjakobs/async.js

Trong mã của bạn:

  • list () là một trình tạo. Nó cho phép lặp lại mảng bởi asyncjs. Mảng là một mảng các giá trị.
  • call () là một trình ánh xạ gọi từng mặt hàng. Do đó, các mục phải có thể gọi được (tức là chúng phải được gọi lại).
  • end () là một điểm kết thúc kết thúc, được gọi khi quá trình lặp kết thúc. Là một tham số, bạn chỉ nhận được giá trị cuối cùng của chuỗi (không phải toàn bộ chuỗi).

Bạn nhận được " [TypeError:Object true không có phương pháp nào 'áp dụng'] "do danh sách bạn đã tạo không phải là danh sách các lệnh gọi lại. Đây là danh sách các giá trị.

Đây là một số mã sẽ làm những gì bạn muốn:

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()

Xin lưu ý ở đây chúng tôi sử dụng map () thay vì call () và toArray () thay vì end ().




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. NodeJS - kết nối an toàn với máy chủ redis bên ngoài

  2. Làm thế nào để chỉ lưu một cơ sở dữ liệu trong Redis?

  3. Làm thế nào để redis chìa khóa hết hạn?

  4. Thư viện Redis tốt nhất cho Java

  5. Docker Redis Connection đã từ chối