Redis
 sql >> Database >  >> NoSQL >> Redis

Come posso utilizzare correttamente i pool di connessione in redis?

Redis-py fornisce un pool di connessioni da cui è possibile recuperare una connessione. I pool di connessioni creano un set di connessioni che è possibile utilizzare secondo necessità (e, una volta terminato, la connessione viene restituita al pool di connessioni per un ulteriore riutilizzo). Cercare di creare connessioni al volo senza scartarle (cioè non utilizzare un pool o non utilizzare il pool correttamente) ti lascerà troppe connessioni da ridisporre (fino a quando non raggiungi il limite di connessione).

Puoi scegliere di impostare il pool di connessioni nel metodo init e rendere il pool globale (puoi guardare altre opzioni se non ti senti a tuo agio con globale).

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)

Puoi quindi recuperare la connessione da un pool come questo:

redis_conn = redis.Redis(connection_pool=redis_pool)

Inoltre, presumo che tu stia utilizzando rentaldis insieme a redis-py poiché in alcuni casi dovrebbe migliorare le prestazioni. Hai anche controllato il numero di connessioni aperte al server redis con la tua configurazione esistente poiché molto probabilmente è piuttosto alto? Puoi utilizzare il comando INFO per ottenere tali informazioni:

redis-cli info

Controlla i Clienti sezione in cui vedrai i "client_connessi " campo che ti dirà quante connessioni hai aperto al server redis in quell'istante.