Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Como uso corretamente os pools de conexão no redis?


Redis-py fornece um pool de conexões para você a partir do qual você pode recuperar uma conexão. Os pools de conexões criam um conjunto de conexões que você pode usar conforme necessário (e quando concluído - a conexão é devolvida ao pool de conexões para reutilização). Tentar criar conexões em tempo real sem descartá-las (ou seja, não usar um pool ou não usá-lo corretamente) deixará você com muitas conexões para redis (até atingir o limite de conexão).

Você pode optar por configurar o pool de conexões no método init e torná-lo global (você pode procurar outras opções se não se sentir confortável com o global).
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)

Você pode então recuperar a conexão de um pool como este:
redis_conn = redis.Redis(connection_pool=redis_pool)

Além disso, estou assumindo que você está usando o rentalis junto com o redis-py, pois deve melhorar o desempenho em certos casos. Você também verificou o número de conexões abertas para o servidor redis com sua configuração existente, pois provavelmente é bastante alto? Você pode usar o comando INFO para obter essas informações:
redis-cli info

Verifique os Clientes seção na qual você verá os "connected_clients " campo que lhe dirá quantas conexões você tem abertas para o servidor redis naquele instante.