具体的には、カスタム Redis モジュールを作成しました。MyRedis
MyRedis.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 アプリでは、「通常の」バックエンド アプリのように、モジュールは 1 回だけ読み込まれますか? それとも、接続ごとに 1 回ロードされますか?
1 回だけロードされた場合、これは Redis サーバーが何らかの理由でクラッシュした場合、再起動すると接続がないことを意味します。これは、2 番目のスニペットが正しいものであることを示唆しています。
では、Python モジュールは Web アプリでどのように動作するのでしょうか?