Redis官方文档07-快速插入大量数据


快速插入大量数据

1 原生的命令

例如,如果我们需要生成一个10亿的`keyN -> ValueN’的大数据集,我们会创建一个如下的redis命令集的文件:

1
2
3
4
SET Key0 Value0
SET Key1 Value1
...
SET KeyN ValueN

一旦创建了这个文件,其余的就是让Redis尽可能快的执行。在以前我们会用如下的netcat命令执行:

1
(cat data.txt; sleep 10) | nc localhost 6379 > /dev/null

然而这并不是一个非常可靠的方式,因为用netcat进行大规模插入时不能检查错误。从Redis 2.6开始redis-cli支持一种新的被称之为pipe mode的新模式用于执行大量数据插入工作。

使用pipe mode模式的执行命令如下:

1
cat data.txt | redis-cli --pipe

这将产生类似如下的输出:

1
2
3
All data transferred. Waiting for the last reply...
Last reply received from server.
errors: 0, replies: 1000000