2012-06-07 26 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