我是经常使用nc来查看mc的状态的,突然有一天,我使用nc命令做set操作,发现总是失败;用telnet没有问题,至少应该不是memcached的问题,可能是nc的问题吧。
今天又遇到了这个问题,我使用tcpdump观察使用nc和使用telnet的差别,发现nc发送的回车为\n ,而telnet发送的回车符为\r\n,差异就这么多了,于是使用下列命令测试:
echo -e "set a 0 0 1\r\na\r\nquit\r\n"|nc host port
结果成功
echo -e "set a 0 0 1\na\nquit\n"|nc host port
结果失败
比较久可以知道问题是出现在回车符上了,至于memcached是怎么解释的,有时间在了解一下源码吧