当前位置: 首页 > 面试题库 >

从Python管理与Redis的连接

岑明辉
2023-03-14
问题内容

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)

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

谢谢你的建议。


问题答案:

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中完成。



 类似资料:
  • 本文向大家介绍Python与Redis的连接教程,包括了Python与Redis的连接教程的使用技巧和注意事项,需要的朋友参考一下 今天在写zabbix storm job监控脚本的时候用到了python的redis模块,之前也有用过,但是没有过多的了解,今天看了下相关的api和源码,看到有ConnectionPool的实现,这里简单说下。 在ConnectionPool之前,如果需要连接redi

  • 问题内容: 我正在使用Redis通过Redis-py客户端库存储两个数据库:0和1 。我想为每个数据库创建两个连接。目前,我正在这样做: 但是,我似乎找不到从连接创建Redis对象的方法。 我在这里犯一个菜鸟错误吗? 问题答案: 您真的不应该那样创建连接。让我引用redis-py文档。 在后台,redis- py使用连接池来管理与Redis服务器的连接。默认情况下,您创建的每个Redis实例将依次

  • 本文向大家介绍使用java连接Redis,Maven管理操作,包括了使用java连接Redis,Maven管理操作的使用技巧和注意事项,需要的朋友参考一下 pom配置 创建db.properties文件 书写工具类 书写测试类 补充知识:JAVA使用Redis所需的MAVEN的POM文件 redis不仅可以通过命令行进行操作,同时redis也可以通过javaAPI进行操作,这是操作redis所需的

  • 有没有可能将Spring托管Bean连接到一个不受Spring IoC管理的类中?假设有两个类(不受Spring管理)和(由Spring管理)有没有可能将连接到中。 这是我最近遇到的一个问题,我不知道该怎么做?

  • 由于单个redis实例不符合我的要求,我选择了redis cluster。我用三个节点组成集群,并将数据填充到集群中。当我使用JedisCluster从集群获取数据时,它比单个实例花费更多的时间。那么,将绝地与redis星系团连接起来的正确方式是什么呢。我如何利用连接池将绝地与redis集群连接起来?

  • 创建一个连接 类org.jivesoftware.smack.XMPPConnection管理你的XMPP服务器的连接,默认实现类为org.jivesoftware.smack.XMPPTCPConnection。 主要是使用两个构造函数,第一个是 XMPPTCPConnection(String) ,它把 你想连接到服务器名称 作为参数。 连接和断开 // Create the configur