0

更具体地说,我创建了一个自定义 Redis 模块:MyRedis

我的Redis.py

import redis
r = redis.StrictRedis(host='localhost', port=6379, db=0)

def get_func(k):
    """ A custom get function """
    return r.get(k)

# ...
# more functions ...
# ...

请注意,连接是在加载模块时建立的。
我的问题是:
这是编写模块的正确方法,还是应该在每个函数r = redis.StrictRedis(...)中包含连接建立行,如下所示:

def get_func(k):
    """ A custom get function """
    r = redis.StrictRedis(host='localhost', port=6379, db=0)
    return r.get(k)

在 Web 应用程序中,一个模块是否只加载一次,就像在“常规”后端应用程序中一样?还是每个连接加载一次?
如果它只加载一次,这意味着如果 Redis 服务器由于某种原因崩溃,一旦它再次启动将没有连接,这表明第二个片段是正确的。
那么 python 模块在 Web 应用程序中是如何表现的呢?

4

1 回答 1

0

但是 SAPI 的行为。如果它是 CGI,它会为每个请求加载。对于 mod_wsgi,它为每个进程加载一次。对于其他人,请参阅他们的文档。

于 2012-10-17T20:16:22.127 回答