如何正确处理Python/Python RQ的Redis连接?
处理Redis连接的最佳方式是什么?这包括直接与Redis交互和通过Python-RQ间接交互。
一般来说,数据库连接在使用完后需要关闭或者返回到连接池,但我不太清楚如何在redis-py中做到这一点。这让我怀疑我是不是做错了。
另外,我在将任务添加到RQ时发现了一些性能下降,有人告诉我这可能和连接的使用或重用不当有关。
总之,我想知道正确的处理方式,这样我就可以检查或修正我们应用中的做法。
非常感谢!如果还有其他有用的信息,请告诉我。
1 个回答
5
在背后,redis-py使用一个连接池来管理与Redis服务器的连接。默认情况下,每当你创建一个Redis实例时,它会自动创建自己的连接池。你可以改变这个默认行为,通过将已经创建好的连接池实例传递给Redis类的connection_pool参数,来使用一个现有的连接池。这样做的原因可能是为了实现客户端分片,或者更细致地控制连接的管理方式。
pool = redis.ConnectionPool(host='localhost', port=6379, db=0)
r = redis.Redis(connection_pool=pool)