Redis质量插入
我正在考虑使用Redis的协议来进行大规模插入,如下所述:在我忙于编写代码来处理这个问题之前,我只想确保我清楚Redis需要什么来完成这项工作 上面的链接表明,要使用大规模插入调用SET操作[SET myKey Value myValue],我需要创建一个命令,该命令可以在文件中的几行或单个带引号的字符串中完成 假设我不想使用SET命令,我想使用SADD命令添加到集合中。这里的内容对引用字符串格式有效吗 “*4\r\n$4\r\n添加\r\n$2\r\n80\r\n$5\r\n1,2,34\r\n” 基本上我存储的是一个键:80,其值为1,2,34 最后,我希望该功能能够做到以下几点:Redis质量插入,redis,Redis,我正在考虑使用Redis的协议来进行大规模插入,如下所述:在我忙于编写代码来处理这个问题之前,我只想确保我清楚Redis需要什么来完成这项工作 上面的链接表明,要使用大规模插入调用SET操作[SET myKey Value myValue],我需要创建一个命令,该命令可以在文件中的几行或单个带引号的字符串中完成 假设我不想使用SET命令,我想使用SADD命令添加到集合中。这里的内容对引用字符串格式有效吗 “*4\r\n$4\r\n添加\r\n$2\r\n80\r\n$5\r\n1,2,34\r\
Key Value
80 1,2,34
90 4,8,34
获取两组的交点(烧结点)和/或并集(SUNION)。i、 e.烧结矿=34或SUNION=1,2,4,8,34
非常感谢您提供的任何有用信息。我只是想确保我在这条路上走的是正确的道路。我想说,你走的是过早优化的道路(这通常不是最好的) 任何带有支持管道的Redis客户端的脚本语言都应该能够将至少50K个命令/秒推送到Redis服务器。代码很简单,无需手动编码Redis协议。诚然,大规模插入技巧更快,但您真的需要它吗 现在,如果您仍然想坚持使用massiveinsert,则需要对适当的Redis命令进行编码。由于以下几个原因,您提供的示例是错误的:
- 参数的数量错误(示例应以*3开头)
- 最后一个参数的长度错误(1,2,34长度为6字节,而不是5字节)
- 在SADD命令中,集合的每个项都需要一个参数(即对于Redis 1,2,34,将是单个项,而不是三个)
"*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协议描述如下:
很好的解释。这实际上增加了清晰度和文档中未提供的缺失信息。此外,仅供参考,我需要插入数亿个这样的数据,并且数据不会经常更新,这就是为什么我对这条路线感兴趣,而不是使用客户端将其导入。