一尘不染

使用--pipe批量导入redis

redis

我正在尝试使用该--pipe功能导入一百万行redis命令。

redis_version:2.8.1

cat file.txt | redis-cli --pipe

这将导致以下错误:

从服务器读取错误:对等连接重置

有人知道我在做什么错吗?

file.txt 包含例如

lpush name joe
lpush name bob

编辑 :我现在看到使用管道模式可能有一种特殊格式(?)-http:
//redis.io/topics/protocol


阅读 911

收藏
2020-06-20

共1个答案

一尘不染

要使用管道模式(也称为批量插入),您实际上必须直接以Redis协议格式提供命令。

对应的Redis协议LPUSH name joe是:

*3
$5
LPUSH
$4
name
$3
joe

或作为带引号的字符串:"*3\r\n$5\r\nLPUSH\r\n$4\r\nname\r\n$3\r\njoe\r\n"

这是您的输入文件必须包含的内容。

Redis的文档包括红宝石样品给你生成协议的帮助:看gen_redis_proto

2020-06-20