1 回答

TA贡献1829条经验 获得超7个赞
Pipeline 不会等待您的确认将批处理发送到 Redis。文档说:
有时你需要发送一堆不同的命令。一个非常酷的方法是使用流水线,并且比天真的方法具有更好的性能。这样,您无需等待响应即可发送命令,并且您实际上在最后读取了响应,这样更快。
总而言之,它说使用管道而不等待响应,并且像流一样发送。
我查看了他们的源代码,确认了他们的文档。
public Pipeline pipelined() {
pipeline = new Pipeline();
pipeline.setClient(client);
return pipeline;
}
这将返回您的 Pipeline 实例。然后你打电话给一堆 HSET
public Long hset(final byte[] key, final byte[] field, final byte[] value) {
checkIsInMultiOrPipeline();
client.hset(key, field, value);
return client.getIntegerReply();
}
马上得到答复。
然后你调用同步它:
通过读取所有响应来同步管道。此操作关闭管道。为了从流水线命令中获取返回值,请捕获您执行的命令的不同 Response<?>。
换句话说,它处理您的管道实例。
总而言之,如果您希望它仅在调用同步时发送批处理,则不应使用“流水线”。这不是它的工作方式。
添加回答
举报