7

在我的node.js脚本中,我有一个字符串数组,我想将LPUSH这些字符串放入 Redis 队列中。我试过了:

var redis = require('redis').createClient();
redis.lpush('queue', ['1', '2', '3'])

这导致单个字符串被推送:

redis 127.0.0.1:6379> lrange queue 0 -1
1) "1,2,3"

Redis 在LPUSH命令中支持多个值,我正在寻求有关使用此功能的帮助。我不是在问如何遍历我的数组并分别推送每个项目。:)

编辑:

我知道我是否这样做:

redis.lpush('queue', '1', '2', '3')

我得到了我的期望,但在我的实际应用程序中,数组是在运行时生成的,我不知道它的内容。

4

2 回答 2

20

现在可以使用es6 扩展语法。任何大小的数组都将作为函数的参数展开。

redis.lpush('queue', ...arrayOfValues)
于 2017-12-30T01:41:43.327 回答
7

这似乎是一个已知问题/常见请求

建议的解决方法之一是直接使用 send_command

你也可以试试这个(我自己没试过):

myvalues.unshift('queue');
redis.lpush.apply(redis, myvalues);
于 2013-08-07T04:36:11.663 回答