sql >> データベース >  >> NoSQL >> Redis

redisコマンドの非同期実行

    使用しているasyncjsモジュールは、https://github.com/fjakobs/async.js

    に記載されているモジュールだと思います。

    コード内:

    • list()はジェネレーターです。これにより、配列をasyncjsで繰り返すことができます。配列は値の配列です。
    • call()は、呼び出すマッパーです。 各項目。したがって、アイテムは呼び出し可能である必要があります(つまり、コールバックである必要があります)。
    • end()は終了エンドポイントであり、反復が終了したときに呼び出されます。パラメータとして、シーケンスの最後の値のみを取得します(シーケンス全体ではありません)。

    [TypeError:Object true has no method'apply'] 「作成したリストがコールバックのリストではないため、エラーが発生しました。値のリストです。

    これがあなたが望むことをするべきいくつかのコードです:

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

    ここでは、call()の代わりにmap()を使用し、end()の代わりにtoArray()を使用していることに注意してください。




    1. Mongodbは、配列フィールドのサイズを合計します

    2. mongoDBの文字列フィールド値の長さ

    3. Node-Js、Typescript、PostgreSQL、Redis、Kafkaで作成されたEコマースAPI

    4. redisデータベースをあるサーバーから別のサーバーに移動するにはどうすればよいですか?