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

我正在使用https://github.com/mranney/node_redis并尝试一次更新多个值的集(在redis cli "SADD myset val1 val2"工作正常)。

我正在使用的确切命令是:

 var cmd_array = ['myset', 'val1', 'val2']; client.sadd(cmd_array); 

基于他们的文件这应该工作。 任何想法,为什么不呢?

谢谢

这对我来说可以。 我可以运行下面的脚本没有任何问题:

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

它创build两个键与预期的项目数量:

 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" 

我会build议你检查node_redis版本。 我使用的版本是:

 $ npm list /home/dspezia/local/test_redis ├── hiredis@0.1.14 └── redis@0.7.1