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<?>。
換句話說,它處理您的管道實例。
總而言之,如果您希望它僅在調用同步時發送批處理,則不應使用“流水線”。這不是它的工作方式。
添加回答
舉報