小编典典

从Python管理与Redis的连接

redis

redis- py在python应用程序中使用的是将简单变量或变量列表存储在Redis数据库中,所以我认为最好在每次需要保存或检索变量时都建立与Redis服务器的连接,因为这样做没有做通常,并且不想建立可能会超时的永久连接。

通过阅读一些基本教程,我使用Redis类创建了连接,但是还没有找到关闭连接的方法,因为这是我第一次使用Redis。我不确定是否使用最佳方法来管理连接,所以我需要一些建议。这就是我现在如何设置setget设置变量:

import redis

def getVariable(variable_name):
    my_server = redis.Redis("10.0.0.1")
    response = my_server.get(variable_name)
    return response

def setVariable(variable_name, variable_value):
    my_server = redis.Redis("10.0.0.1")
    my_server.set(variable_name, variable_value)

我基本上使用此代码来存储上次连接时间或平均每秒对我的应用和类似内容进行的请求数量。

谢谢你的建议。


阅读 333

收藏
2020-06-20

共1个答案

小编典典

Python使用引用计数器机制来处理对象,因此在块的末尾,my_server对象将被自动销毁并关闭连接。您无需显式关闭它。

现在,这不是您应该如何管理Redis连接的方式。每次操作的连接/断开连接过于昂贵,因此最好保持连接断开。使用redis-py可以通过声明连接池来完成:

import redis

POOL = redis.ConnectionPool(host='10.0.0.1', port=6379, db=0)

def getVariable(variable_name):
    my_server = redis.Redis(connection_pool=POOL)
    response = my_server.get(variable_name)
    return response

def setVariable(variable_name, variable_value):
    my_server = redis.Redis(connection_pool=POOL)
    my_server.set(variable_name, variable_value)

请注意,连接池管理大部分是自动的,并且在redis-py中完成。

2020-06-20