快速插入大量数据
1 原生的命令
例如,如果我们需要生成一个10亿的`keyN -> ValueN’的大数据集,我们会创建一个如下的redis命令集的文件:
1 | SET Key0 Value0 |
一旦创建了这个文件,其余的就是让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 | All data transferred. Waiting for the last reply... |