【问题标题】:redis-py with gevent带 gevent 的 redis-py
【发布时间】:2012-06-11 07:27:41
【问题描述】:

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

有人有使用 gevent 运行 redis-py 库的经验吗?有工作示例吗?

他们在一起玩得好吗?是否有任何预防措施或技巧可以让它们大规模工作?

换个说法:

要使用 gevent greenlets 建立 redis-py 连接,除了 monkeypatch 套接字之外,我还需要做一些特别的事情吗?

from gevent import monkey

monkey.patch_all()

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

【问题讨论】:

    标签: python redis gevent


    【解决方案1】:

    是的,redis-py 与 gevent 配合得很好。

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

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

    主要的陷阱是考虑到因为 gevent 是异步的并且套接字是猴子补丁的,所以往返 Redis 的成本会神奇地消失。这是完全错误的。

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

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

    【讨论】:

    • 嗨,亲爱的,其实我不太关心延迟,我真正关心的是有大量的连接,没有重量级的线程或进程
    • 结论是什么?我也打算将 gevent 与 redis 一起使用。有什么要点可以举个例子吗?
    猜你喜欢
    • 2013-11-15
    • 2013-08-19
    • 1970-01-01
    • 2013-06-04
    • 2013-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多