为什么';t redis SADD在node.js中使用数组作为输入?
我正在使用并尝试一次更新具有多个值的集合(在redis cli上“SADD myset val1 val2”工作正常) 我使用的确切命令是:为什么';t redis SADD在node.js中使用数组作为输入?,node.js,redis,Node.js,Redis,我正在使用并尝试一次更新具有多个值的集合(在redis cli上“SADD myset val1 val2”工作正常) 我使用的确切命令是: var cmd_array = ['myset', 'val1', 'val2']; client.sadd(cmd_array); 根据他们的文件,这应该是可行的。知道为什么没有吗 谢谢这对我来说很好用。 我可以毫无问题地运行以下脚本: var redis = require("redis"), client_options = { p
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();
它将创建两个具有预期项数的键:
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"
我建议您检查node\u redis版本。
我使用的版本是:
$ npm list
/home/dspezia/local/test_redis
├── hiredis@0.1.14
└── redis@0.7.1
这对我来说很好。
我可以毫无问题地运行以下脚本:
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();
它将创建两个具有预期项数的键:
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"
我建议您检查node\u redis版本。
我使用的版本是:
$ npm list
/home/dspezia/local/test_redis
├── hiredis@0.1.14
└── redis@0.7.1
谢谢迪迪埃的回复。我使用的是版本0.7.2,顺便说一句,我得到的确切错误是“error:error:ERR'sadd'命令的参数数目错误”刚刚在我安装的版本(0.7.2)上运行了您的代码,它抛出了相同的错误。问题是我的安装还是版本有问题。我已经升级到0.7.2,它对我来说仍然可以正常工作。还有node.js版本本身需要检查。您是否使用开发分支(即版本>0.6.16)?最后一点,您使用的是哪个版本的redis服务器?我的是Redis服务器版本2.2.12(00000000:0)啊,可能就是这样。Redis2.2现在已经很老了。可变参数命令已添加到2.4中。这里的变更日志:谢谢迪迪埃的回复。我使用的是版本0.7.2,顺便说一句,我得到的确切错误是“error:error:ERR'sadd'命令的参数数目错误”刚刚在我安装的版本(0.7.2)上运行了您的代码,它抛出了相同的错误。问题是我的安装还是版本有问题。我已经升级到0.7.2,它对我来说仍然可以正常工作。还有node.js版本本身需要检查。您是否使用开发分支(即版本>0.6.16)?最后一点,您使用的是哪个版本的redis服务器?我的是Redis服务器版本2.2.12(00000000:0)啊,可能就是这样。Redis2.2现在已经很老了。可变参数命令已添加到2.4中。更改日志: