Redis Mass Insertion - 错误输出

时间:2016-01-29 19:46:50

标签: docker redis

我试图跟Redis Mass Insertion – Redis关注Redis而且有些不对劲。(。

root@f7ca5eef4a4c:~# redis-cli --version   
redis-cli 3.0.6
root@f7ca5eef4a4c:~# redis-cli                                                   
127.0.0.1:6379> flushall
OK
127.0.0.1:6379> 
root@f7ca5eef4a4c:~# for i in {0..10} ; do echo "SET Key$i Value$i" >> $$ ; done 
root@f7ca5eef4a4c:~# cat $$ | redis-cli --pipe                                  
All data transferred. Waiting for the last reply...
ERR unknown command 'ET'
ERR unknown command 'ET'
ERR unknown command 'ET'
ERR unknown command 'ET'
ERR unknown command 'ET'
ERR unknown command 'ET'
ERR unknown command 'ET'
ERR unknown command 'ET'
ERR unknown command 'ET'
ERR unknown command 'ET'
Last reply received from server.
errors: 10, replies: 11
root@f7ca5eef4a4c:~# cat $$
SET Key0 Value0
SET Key1 Value1
SET Key2 Value2
SET Key3 Value3
SET Key4 Value4
SET Key5 Value5
SET Key6 Value6
SET Key7 Value7
SET Key8 Value8
SET Key9 Value9
SET Key10 Value10
root@f7ca5eef4a4c:~# 

我做错了什么?为什么会失败?

1 个答案:

答案 0 :(得分:2)

我认为redis期待的行被\r\r\n终止。如果您在Linux上执行此操作,则会获得\n个终止行,redis无法解析。

在您输入其他命令的同一目录中尝试此操作:

# rm $$
# for i in {0..10} ; do printf "SET Key$i Value$i\r\n" >> $$ ; done
# cat $$ | redis-cli --pipe

编写该教程的人可能在Mac或Windows上工作,这恰好产生了适当的行终止符。