xrayw
xrayw
😄 这个buildKey的确令人头大, 租户相关的prefix在key为string和byte[]的时候直接不走keyConveror了. 作者考虑加一个keyPrefix的接口吧, 现有的keyPrefix只能静态. 对于动态的prefix目前没有办法支持.
It's a good idea to provide a Executor/ExecutorService by user, instead of create a new one for each pipeline. It's can't used in high-concurrency/cost scenarios. the default implement shouldn't to...
@ggivo thank you, and by the way https://github.com/redis/jedis/blob/1d1b268f9be5b093f6684bc814d2fdab376a1ee3/src/main/java/redis/clients/jedis/MultiNodePipelineBase.java#L62 is it should use computeIfAbsent? instead of putIfAbsent. ```java pipelinedResponses.putIfAbsent(nodeKey, new LinkedList()); queue = pipelinedResponses.get(nodeKey); -> queue = pipelinedResponses.computeIfAbsent(nodeKey, (_) -> new...
Because each putIfAbsent will create a list object, but if the key already exists in the map, this list doesn't need to be created.
@ggivo Yes, You're right. we can just even use put. because we checked it not contains.
https://github.com/redis/jedis/blob/1d1b268f9be5b093f6684bc814d2fdab376a1ee3/src/main/java/redis/clients/jedis/MultiNodePipelineBase.java#L98 And if `pipelinedResponses.size() == 1`, we don't need to submit it to ExecutorService. but run it on the work thread directly. to avoid the cost of thread context switch....
Thank you ,i createed a new issue to track it. https://github.com/redis/jedis/issues/4148
+1, 同遇到了. 我按照这里的填充列表demo, 遇到了相同的问题. 问题版本: 4.0.3, 我退回到3.3.4 又能正常运行, 没这个问题.