为什么redis SADD不能将数组用作node.js中的输入?

use*_*956 1 redis node.js

我正在使用https://github.com/mranney/node_redis并尝试一次更新具有多个值的集合(在redis cli上"SADD myset val1 val2"运行正常).

我使用的确切命令是:

var cmd_array = ['myset', 'val1', 'val2'];
client.sadd(cmd_array);
Run Code Online (Sandbox Code Playgroud)

根据他们的文档,这应该工作.知道为什么不呢?

谢谢

Did*_*zia 7

这对我来说可以.我可以毫无问题地运行以下脚本:

var redis = require("redis"),
    client_options = {
    parser: "hiredis"
};

var credis = redis.createClient( '/tmp/redis.sock', client_options );

function main()
{
   credis.flushall( function(err,res) {
      console.log( "hello" );
      x = [ "X", "A", "B", "C" ];
      credis.sadd(x);
      credis.sadd( "myset", x, function(err,res) {
         console.log("done");
         credis.end();
      });
   });
}

main();
Run Code Online (Sandbox Code Playgroud)

它创建了具有预期项目数的两个键:

redis 127.0.0.1:6379> keys *                                                                                                                                                                                                                 
1) "X"                                                                                                                                                                                                                                       
2) "myset"                                                                                                                                                                                                                                   
redis 127.0.0.1:6379> smembers myset                                                                                                                                                                                                         
1) "X"                                                                                                                                                                                                                                       
2) "A"                                                                                                                                                                                                                                       
3) "B"                                                                                                                                                                                                                                       
4) "C"                                                                                                                                                                                                                                       
redis 127.0.0.1:6379> smembers X                                                                                                                                                                                                             
1) "A"                                                                                                                                                                                                                                       
2) "B"                                                                                                                                                                                                                                       
3) "C"                                                                                                                                                                                                                                       
Run Code Online (Sandbox Code Playgroud)

我建议你检查node_redis版本.我使用的版本是:

$ npm list
/home/dspezia/local/test_redis
??? hiredis@0.1.14 
??? redis@0.7.1 
Run Code Online (Sandbox Code Playgroud)