gpt4 book ai didi

python - 如何处理跨多个模块的 Redis 连接?

转载 作者:IT王子 更新时间:2023-10-29 06:04:35 34 4
gpt4 key购买 nike

我正在构建一个使用 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_manager:

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

关于python - 如何处理跨多个模块的 Redis 连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26170114/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com