我正在努力追随Redis 批量插入 – Redis http://redis.io/topics/mass-insert with Redis https://hub.docker.com/_/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:~#
我究竟做错了什么?为什么会失败?
我认为 redis 期望行终止于\r
or \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 上工作,这恰好产生了适当的行终止符。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)