1 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊
Pipeline 不會等待您的確認(rèn)將批處理發(fā)送到 Redis。文檔說:
有時(shí)你需要發(fā)送一堆不同的命令。一個(gè)非??岬姆椒ㄊ鞘褂昧魉€,并且比天真的方法具有更好的性能。這樣,您無需等待響應(yīng)即可發(fā)送命令,并且您實(shí)際上在最后讀取了響應(yīng),這樣更快。
總而言之,它說使用管道而不等待響應(yīng),并且像流一樣發(fā)送。
我查看了他們的源代碼,確認(rèn)了他們的文檔。
public Pipeline pipelined() {
pipeline = new Pipeline();
pipeline.setClient(client);
return pipeline;
}
這將返回您的 Pipeline 實(shí)例。然后你打電話給一堆 HSET
public Long hset(final byte[] key, final byte[] field, final byte[] value) {
checkIsInMultiOrPipeline();
client.hset(key, field, value);
return client.getIntegerReply();
}
馬上得到答復(fù)。
然后你調(diào)用同步它:
通過讀取所有響應(yīng)來同步管道。此操作關(guān)閉管道。為了從流水線命令中獲取返回值,請捕獲您執(zhí)行的命令的不同 Response<?>。
換句話說,它處理您的管道實(shí)例。
總而言之,如果您希望它僅在調(diào)用同步時(shí)發(fā)送批處理,則不應(yīng)使用“流水線”。這不是它的工作方式。
添加回答
舉報(bào)