2012-06-07 29 views
21

redis-py库可以和gevent一起使用吗?redis-py和gevent

有没有人有经验与gevent运行redis-py库?有没有一个可行的例子?

他们在一起玩得好吗?有没有任何预防措施或黑客让他们大规模工作?

的问题在其他的话:

使Redis的-PY连接使用GEVENT greenlets,我必须做什么特别的比猴补丁插座等?

from gevent import monkey 

monkey.patch_all() 

然后像往常一样使用redis-py?

回答

17

是的,redis-py可以和gevent一起工作。

您可以查看我对以下问题的回答:您将找到一个示例和一些备注。

redis + gevent - Poor performance - what am I doing wrong?

主要陷阱是考虑到因为GEVENT是异步的,插座monkeypatched,往返于Redis的成本会奇迹般地消失。这显然是错误的。

gevent在同时使用多个连接时主要很有趣,因此可以将事件循环系统调用分解。如果用户代码在少量连接上向Redis生成大量同步往返,则它将涉及延迟,即使这些连接是由gevent以异步方式进行管理的。

因此,即使在使用gevent时,必须始终使用流水线来优化通信成本。

+0

嗨亲爱的,其实我并不关心延迟,我真正关心的是有大量的连接,没有严重的线程或进程 – Joseph

+0

结论是什么?我也打算在redis中使用gevent。任何要显示的例子? – Mark