Executing batches of commands using redis cli

Redis

Redis Problem Overview


I have a long text file of redis commands that I need to execute using the redis command line interface:

e.g.

DEL 9012012
DEL 1212
DEL 12214314

etc.

I can't seem to figure out a way to enter the commands faster than one at a time. There are several hundred thousands lines, so I don't want to just pile them all into one DEL command, they also don't need to all run at once.

Redis Solutions


Solution 1 - Redis

the following code works for me with redis 2.4.7 on mac

./redis-cli < temp.redisCmds

Does that satisfy your requirements? Or are you looking to see if there's a way to programmatically do it faster?

Solution 2 - Redis

If you don't want to make a file, use echo and \n

echo "DEL 9012012\nDEL 1212" | redis-cli

Solution 3 - Redis

The redis-cli --pipe can be used for mass-insertion. It is available since 2.6-RC4 and in Redis 2.4.14. For example:

cat data.txt | redis-cli --pipe

More info in: http://redis.io/topics/mass-insert

Solution 4 - Redis

I know this is an old old thread, but adding this since it seems missed out among other answers, and one that works well for me.

Using heredoc works well here, if you don't want to use echo or explicitly add \n or create a new file -

redis-cli <<EOF
select 15
get a
EOF

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionLTMEView Question on Stackoverflow
Solution 1 - RedisControlAltDelView Answer on Stackoverflow
Solution 2 - RedisSanghyun LeeView Answer on Stackoverflow
Solution 3 - RedismrnovallesView Answer on Stackoverflow
Solution 4 - RedisKamehamehaView Answer on Stackoverflow