Jos*_*eph 23 python redis gevent
redis-py库可以与gevent一起使用吗?
有没有人有使用gevent运行redis-py库的经验?有工作的例子吗?
他们一起玩得很好吗?是否有任何预防措施或黑客可以让他们大规模工作?
换句话说:
为了使redis-py连接使用gevent greenlets,除了monkeypatch套接字之外我还需要做任何特殊的事情吗?
from gevent import monkey
monkey.patch_all()
Run Code Online (Sandbox Code Playgroud)
那么像往常一样使用redis-py?
Did*_*zia 18
是的,redis-py与gevent一起工作正常.
您可以查看我对以下问题的回答:您将找到一个示例和一些评论.
redis + gevent - 表现不佳 - 我做错了什么?
主要的陷阱是考虑因为gevent是异步的并且套接字是monkeypatched,所以Redis往返的成本将神奇地消失.这是完全错误的.
当使用多个连接时,gevent主要是有趣的,因此事件循环系统调用可以被分解.如果用户代码在少量连接上为Redis生成大量同步往返,则会涉及延迟,即使这些连接是由gevent以异步方式管理的.
因此,即使使用gevent,也必须始终使用流水线来优化通信成本.