使用redis cli执行批量命令

LTM*_*TME 53 redis

我有一个redis命令的长文本文件,我需要使用redis命令行界面执行:

例如

DEL 9012012
DEL 1212
DEL 12214314
Run Code Online (Sandbox Code Playgroud)

等等

我似乎无法找到一种比一次更快地输入命令的方法.有几十万行,所以我不想将它们全部堆成一个DEL命令,它们也不需要一次全部运行.

Con*_*Del 74

以下代码适用于Mac上的redis 2.4.7

./redis-cli < temp.redisCmds
Run Code Online (Sandbox Code Playgroud)

这满足您的要求吗?或者您是否想要查看是否有一种方法可以更快地以编程方式执行此操作?


San*_*Lee 55

如果您不想创建文件,请使用echo\n

echo "DEL 9012012\nDEL 1212" | redis-cli
Run Code Online (Sandbox Code Playgroud)

  • 在某些操作系统上,您应该使用`echo -e`来使OS按预期解释`\n`.请记住,您始终可以使用`redis-cli -d <dilimiter>`更改默认redis (17认同)
  • 在 CentOS 上,`echo -e "DEL 9012012\nDEL 1212" | redis-cli` (2认同)

zuc*_*ask 14

redis-cli --pipe可用于大量插入.它自2.6-RC4和Redis 2.4.14开始提供.例如:

cat data.txt | redis-cli --pipe
Run Code Online (Sandbox Code Playgroud)

更多信息:http://redis.io/topics/mass-insert


Kam*_*eha 12

我知道这是一条古老的线索,但添加了这一点,因为它似乎在其他答案中被遗漏了,而且对我来说效果很好。

如果您不想使用 echo 或显式添加或创建新文件,则使用heredoc在这里效果很好 -\n

redis-cli <<EOF
select 15
get a
EOF
Run Code Online (Sandbox Code Playgroud)