Redis-pyは、接続を取得できる接続プールを提供します。接続プールは、必要に応じて使用できる接続のセットを作成します(完了すると、接続は接続プールに戻され、さらに再利用されます)。接続を破棄せずにオンザフライで作成しようとすると(つまり、プールを使用していないか、プールを正しく使用していない)、(接続制限に達するまで)Redisに接続が多すぎます。
initメソッドで接続プールを設定し、プールをグローバルにすることを選択できます(グローバルに慣れていない場合は、他のオプションを確認できます)。
redis_pool = None
def init():
global redis_pool
print("PID %d: initializing redis pool..." % os.getpid())
redis_pool = redis.ConnectionPool(host='10.0.0.1', port=6379, db=0)
次に、次のようにプールから接続を取得できます。
redis_conn = redis.Redis(connection_pool=redis_pool)
また、場合によってはパフォーマンスが向上するため、redis-pyと一緒にhiredisを使用していると想定しています。また、既存のセットアップでRedisサーバーに開いている接続の数も確認しましたか?これは、おそらく非常に多いためです。 INFOコマンドを使用して、その情報を取得できます。
redis-cli info
クライアントを確認します 「connected_clients」が表示されるセクション "その瞬間にredisサーバーに対して開いている接続の数を示すフィールド。