redis.lpush a number of items

akonsu picture akonsu · Aug 7, 2013 · Viewed 13.4k times · Source

In my node.js script I have an array of strings, and I want to LPUSH these strings into a Redis queue. I tried:

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

which results in a single string being pushed:

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

Redis supports multiple values in LPUSH command, I am looking for help on utilizing this functionality. I am not asking how to loop over my array and push each item separately. :)

EDIT:

I know if I do this:

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

I get what I expect, but in my real application the array is generated at run time, and I do not know its contents.

Answer

SofieGraham picture SofieGraham · Dec 30, 2017

This is now possible with es6 spread syntax. An array of any size will be spread out as the arguments to the function.

redis.lpush('queue', ...arrayOfValues)