Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何跨多个模块处理Redis连接?_Python_Redis - Fatal编程技术网

Python 如何跨多个模块处理Redis连接?

Python 如何跨多个模块处理Redis连接?,python,redis,Python,Redis,我正在构建一个将Redis用作数据存储的应用程序。因此,我有许多与Redis交互的函数,通常作为一组Redis命令的包装 当应用程序超过我的初始.py文件时,我不知道如何处理多个模块之间的Redis连接。目前,指向Redis连接的指针声明在文件顶部,每个函数都假定它存在,而不是将它传递给每个函数。如果我将这些函数分散到多个文件中,那么每个模块都会创建自己的Redis指针以供使用,并且应用程序的每个实例都会打开到Redis的多个连接 我希望有一个实例只使用相同的连接 我不想这样做: import

我正在构建一个将Redis用作数据存储的应用程序。因此,我有许多与Redis交互的函数,通常作为一组Redis命令的包装

当应用程序超过我的初始.py文件时,我不知道如何处理多个模块之间的Redis连接。目前,指向Redis连接的指针声明在文件顶部,每个函数都假定它存在,而不是将它传递给每个函数。如果我将这些函数分散到多个文件中,那么每个模块都会创建自己的Redis指针以供使用,并且应用程序的每个实例都会打开到Redis的多个连接

我希望有一个实例只使用相同的连接

我不想这样做:

import redis
class MyApp(object):
    def __init__(self):
        self.r = redis.Redis()
    (all my app functions that touch redis go here)
我也不想把Redis指针作为参数传递给每个函数

有没有其他方法可以让不同模块的函数共享一个Redis()实例?

类似这样的方法:

模块redis\u管理器:

class RedisManager(object):
    def __init__():
        # Connect to redis etc
        self.redis = 12345


redis_manager = RedisManager()
然后在其他模块中,您可以执行以下操作:

from redis_manager import redis_manager

redis_manager.redis.stuff

哎呀,嗯。没有考虑创建一个只创建连接的文件,然后导入指针而不是类。谢谢