这是我通过nodejs转换器管道进入redis的文件的hexdump:
me@myself ~/scripts $ cat example.txt | node redisProtocol.js | hexdump -C
00000000 2a 39 0d 0a 24 34 0d 0a 53 41 44 44 0d 0a 24 37 |*9..$4..SADD..$7|
00000010 0d 0a 64 6f 6d 61 69 6e 73 0d 0a 24 31 34 0d 0a |..domains..$14..|
00000020 77 77 77 2e 72 65 64 64 69 74 2e 63 6f 6d 0d 0a |www.reddit.com..|
00000030 24 34 0d 0a 53 41 44 44 0d 0a 24 37 0d 0a 64 6f |$4..SADD..$7..do|
00000040 6d 61 69 6e 73 0d 0a 24 31 33 0d 0a 77 77 77 2e |mains..$13..www.|
00000050 34 63 68 61 6e 2e 6f 72 67 0d 0a 24 34 0d 0a 53 |4chan.org..$4..S|
00000060 41 44 44 0d 0a 24 37 0d 0a 64 6f 6d 61 69 6e 73 |ADD..$7..domains|
00000070 0d 0a 24 31 36 0d 0a 77 77 77 2e 66 61 63 65 62 |..$16..www.faceb|
00000080 6f 6f 6b 2e 63 6f 6d 0d 0a |ook.com..|
00000089
当管道到redis-cli --pipe
时,我得到:
All data transferred. Waiting for the last reply...
Last reply received from server.
errors: 0, replies: 1
哪个好。
现在查看执行smembers domains
的redis数据库,我得到:
redis 127.0.0.1:6379> smembers domains
1) "domains"
2) "SADD"
3) "www.reddit.com"
4) "www.4chan.org"
5) "www.facebook.com"
“域名”和“SADD”的附加条目来自哪里? hexdump看起来不错,不是吗?
使用redis版本redis-cli 2.6.7
。非常感谢您提供的任何帮助
最好,
亚历
答案 0 :(得分:3)
不,它看起来不太好。我想你期望hexdump代表:
SADD domains www.reddit.com
SADD domains www.4chan.org
SADD domains www.facebook.com
但是,它以'* 9'开头,这意味着Redis需要一个带有9个参数的命令。所以Redis处理:
SADD domains www.reddit.com SADD domains www.4chan.org SADD domains www.facebook.com
给出了你的结果。
您需要在流中执行3个命令,每个命令以* 3开头,或者只需要一个命令包含:
SADD domains www.reddit.com www.4chan.org www.facebook.com
从* 5开始