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

标签 node.js redis

我正在使用 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();

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

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_redis 版本。 我使用的版本是:

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

关于node.js - 为什么 redis SADD 不能使用数组作为 node.js 中的输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10451059/

相关文章:

javascript - Symfony2 + NodeJS + AngularJS?

asp.net-web-api - Ninject方法注入(inject)Redis

c# - 如何使用 GetEndPoints() 获取唯一端点列表

javascript - Node.js 中的二进制字符串到缓冲区

javascript - 如何将 CSS 样式表转换为内联 CSS 样式?

node.js - Node.JS 中的谷歌云语音 : config speech_context

node.js - npm:如何在每次更改时运行测试和 lint?

database - 有什么有效的方法可以减少 HyperLogLog ( redis ) 中的错误?

运行 make 命令时,Redis 安装失败并显示 "Newer version of jemalloc required"

ruby-on-rails - 从 Ruby 到 Azure 的 Redis::TimeoutError