【问题标题】:How to properly handle Redis connections with Python / Python RQ?如何使用 Python / Python RQ 正确处理 Redis 连接?
【发布时间】:2013-03-13 17:21:28
【问题描述】:

处理 Redis 连接的最佳模式是什么(无论是直接与 Redis 交互还是通过 Python-RQ 间接交互)?

通常,数据库连接完成后需要关闭/返回到池中,但我不知道如何使用 redis-py 来做到这一点。这让我怀疑我是不是做错了。

此外,我在将作业排队到 RQ 时看到了一些性能下降,我被告知这可能与糟糕的连接使用/重用有关。

基本上,我有兴趣了解正确的模式,因此我可以验证或更正我们应用程序中的内容。

非常感谢!如果有更多有用的信息,请告诉我。

【问题讨论】:

    标签: python database redis database-connection


    【解决方案1】:

    在后台,redis-py 使用连接池来管理与 Redis 服务器的连接。默认情况下,您创建的每个 Redis 实例都会依次创建自己的连接池。您可以通过将已创建的连接池实例传递给 Redis 类的 connection_pool 参数来覆盖此行为并使用现有的连接池。您可以选择这样做是为了实现客户端分片或更好地控制连接的管理方式

    pool = redis.ConnectionPool(host='localhost', port=6379, db=0)
    r = redis.Redis(connection_pool=pool)
    

    【讨论】:

    • 太棒了!但是,我仍然不清楚该连接池返回的连接是否应该在任何时候关闭或者是否自动处理。有什么想法吗?
    • 我没有关闭任何连接,也没有阅读过它,也没有看到任何性能问题。也许有一种处理连接的正确方法
    • @JuanCarlosCoto:自从您发布此主题以来已经有好几年了,我相信您现在会有很多经验。您能否分享在处理多个连接时要遵循的最佳做法?
    猜你喜欢
    • 2013-09-09
    • 2014-03-10
    • 2014-02-11
    • 1970-01-01
    • 2018-11-07
    • 2021-07-31
    • 2015-02-09
    • 2013-02-24
    • 2015-10-18
    相关资源
    最近更新 更多