我正在考虑使用Redis的协议来进行大量插入,如下所述:在我忙于编写代码来处理这个问题之前,我只想确定我清楚地知道Redis需要什么才能完成这项工作。
上面的链接建议,要使用大量插入调用SET操作集myKey值myValue,我需要创建一个命令,该命令可以在文件中的几行或单个引号字符串中执行。
假设我不想使用set命令,我想使用SADD命令将其添加到一个集合中。这里的内容对引用的字符串格式有效吗?
"*4\r\n$4\r\nSADD\r\n$2\r\n80\r\n$5\r\n1,2,34\r\n“
从本质上说,我存储的是一个关键: 80,它的值是1,2,34
最后,我想要做的是:
Key Value
80 1,2,34
90 4,8,34得到这两组的相交(烧结)和/或联合(SUNION)。即烧结矿= 34或亚硝= 1,2,4,8,34
如果您能提供任何有用的信息,我们将不胜感激。我只想确定我走上了正确的道路。
发布于 2013-09-18 12:28:01
我想说的是,您正在进行过早的优化(这通常不是最好的)。
任何带有Redis客户端支持流水线的脚本语言都应该能够将至少50K命令/s推送到Redis服务器。代码将是直接的,不需要手动编码Redis协议。当然,大规模的插入技巧更快,但你真的需要它吗?
现在,如果您仍然希望坚持大量插入,则需要对一个正确的Redis命令进行编码。您提供的示例有几个原因是错误的:
正确的命令应该是这样的:
"*5\r\n$4\r\nSADD\r\n$2\r\n80\r\n$1\r\n1\r\n$1\r\n2\r\n$2\r\n34\r\n"这里描述了Redis协议:http://redis.io/topics/protocol
https://stackoverflow.com/questions/18870623
复制相似问题