使用redis cli执行批量命令

lsmd5eda  于 2023-08-02  发布在  Redis
关注(0)|答案(5)|浏览(94)

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

DEL 9012012
DEL 1212
DEL 12214314

字符串
等等。
我似乎找不到一种比一次输入命令更快的方法。有几十万行代码,所以我不想把它们都堆到一个DEL命令中,它们也不需要同时运行。

piah890a

piah890a1#

下面的代码适用于我与redis 2.4.7在mac上

./redis-cli < temp.redisCmds

字符串
这符合你的要求吗?或者你想看看是否有一种方法可以更快地编程?

bxgwgixi

bxgwgixi2#

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

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

字符串

7hiiyaii

7hiiyaii3#

redis-cli --pipe可用于大规模插入。它从2.6-RC 4和Redis 2.4.14开始提供。举例来说:

cat data.txt | redis-cli --pipe

字符串
更多信息,请访问:http://redis.io/topics/mass-insert

yxyvkwin

yxyvkwin4#

我知道这是一个古老的线索,但添加这个,因为它似乎错过了其他答案,一个对我很好。
在这里使用heredoc很好,如果你不想使用echo或者显式添加\n或者创建一个新文件-

redis-cli <<EOF
select 15
get a
EOF

字符串

v9tzhpje

v9tzhpje5#

我想把它放在这里,因为我搜索了我的情况下,发现这个问题的道路沿着。我需要通过npm脚本执行redis多行命令,并在redis命令中解析变量(redis作为Docker容器实现)。为此,我创建了名为redis-delete-key.txt的txt文件,命令如下:

SELECT 1
DEL ${KEY}

字符串
在这里,我选择所需的redis db并删除密钥。
在package.json中,我添加了以下命令:

"scripts": {
  ...
  "delete-key-from-redis": "envsubst <redis-delete-key.txt | docker exec -i redis redis-cli"
}


其中envsubst是替换文件中变量的linux命令。
为了传递变量,我像这样执行npm命令:

KEY="anykey" npm run delete-key-from-redis


对我有效,希望对某人有帮助。

相关问题