2017-04-04 7 views

答えて

0

まだあなたと関連がありますが、次のコードがMULTIのEXECABORTエラーを生成するかどうかは不明です。 PS。

var redis = require("redis"), 
client = redis.createClient(); 
client.sadd("bigset", "a member"); 
client.sadd("bigset", "another member"); 
set_size = 20; 

while (set_size > 0) { 
    client.sadd("bigset", "member " + set_size); 
    set_size -= 1; 
} 

// multi chain with an individual callback 
client.multi() 
    .scard("bigset") 
    .smembers("bigset") 
    .set("a") 
    .keys("*", function (err, replies) { 
     // NOTE: code in this callback is NOT atomic 
     // this only happens after the the .exec call finishes. 
     client.mget(replies, redis.print); 
    }) 
    .dbsize() 
    .exec(function (err, replies) { 
//  console.log("MULTI got " + replies.length + " replies"); 
    //  replies.forEach(function (reply, index) { 
//   console.log("Reply " + index + ": " + reply.toString()); 
    // }); 
     console.log(replies); 
     console.log(err); 
     client.quit(); 
    }); 

出力

undefined

{ [ReplyError: EXECABORT Transaction discarded because of previous errors.] command: 'EXEC', code: 'EXECABORT', errors: [ { [ReplyError: ERR wrong number of arguments for 'set' command] command: 'SET', args: [Object], code: 'ERR', position: 2 } ] }

説明:SETコマンドは2つの引数を取り、私はnodejs開発者:)

コードないです。私は1つだけを与え、コンソールにエラーを表示します。

トピックの詳細な説明はthisです。ブリッジARの最後のコメントを参照してください。

サンプルコードは、nodejs git repoから取得しました。

関連する問題

 関連する問題