gpt4 book ai didi

java - redis nio 客户端如何正常工作?

转载 作者:IT王子 更新时间:2023-10-29 06:12:20 24 4
gpt4 key购买 nike

我找到了一些redis nio客户端。
它只是将命令放入队列,
每当有响应时,解析响应并将结果附加到第一个队列元素。

例如:

get(K key){
Command cmd = new GetCommand();
queue.put(cmd);
send(cmd);
}
//invoked while any data receive from server
onReceive(Response res){
queue.take().setResult(parse(res));
}

服务器可以保证响应以与发送请求相同的顺序发回吗?
或者只是因为redis服务器使用一个线程来处理请求?我可以在其他情况下使用这种方法吗?

最佳答案

这会起作用,但您确实需要非常小心地处理这类事情。在从单个线程调用的按顺序发送命令的单个连接上,您将按顺序获得响应。

如果您有多个线程访问同一个连接或在同一个队列上使用多个连接,则匹配请求的响应会变得更加复杂。

对于我假设是您正在使用的客户端的具体情况,我发现了一个帖子可以更直接地回答您的问题:

Lettuce is a scalable thread-safe client built on top of the excellent netty framework. Multiple threads can share a single connection as long as they avoid blocking and transactional operations, and multiple connections are efficiently managed using NIO selectors. Internally lettuce is completely asynchronous and it exposes both synchronous and asynchronous interfaces, as well as asynchronous pub/sub callbacks.

http://groups.google.com/group/redis-db/browse_thread/thread/fa05f025c9213ddf

关于java - redis nio 客户端如何正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7184422/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com