sql >> Database >  >> NoSQL >> Redis

Hoe gebruik ik verbindingspools op de juiste manier in redis?

Redis-py biedt u een connectiepool aan waaruit u een verbinding kunt ophalen. Verbindingspools maken een set verbindingen die u naar behoefte kunt gebruiken (en als u klaar bent, wordt de verbinding teruggestuurd naar de verbindingspool voor verder hergebruik). Proberen om on-the-fly verbindingen te maken zonder ze weg te gooien (d.w.z. een pool niet gebruiken of de pool niet correct gebruiken) zal je veel te veel verbindingen opleveren om opnieuw te maken (totdat je de verbindingslimiet bereikt).

U kunt ervoor kiezen om de verbindingspool in de init-methode in te stellen en de pool globaal te maken (u kunt naar andere opties kijken als u zich niet prettig voelt bij globaal).

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)

U kunt de verbinding dan als volgt uit een pool ophalen:

redis_conn = redis.Redis(connection_pool=redis_pool)

Ik ga er ook van uit dat je hireis samen met redis-py gebruikt, omdat dit in bepaalde gevallen de prestaties zou moeten verbeteren. Heb je met je bestaande setup ook het aantal open verbindingen naar de redis-server gecontroleerd, aangezien dit hoogstwaarschijnlijk vrij hoog is? U kunt het INFO-commando gebruiken om die informatie te krijgen:

redis-cli info

Controleer de Cliënten sectie waarin u de "connected_clients . ziet " veld dat u zal vertellen hoeveel verbindingen u op dat moment open heeft staan ​​met de redis-server.



  1. Spring Boot redisTemplate autowiring mislukt

  2. MongoDB/NoSQL:geschiedenis van documentwijzigingen bijhouden

  3. Meteor mongo werkt geneste array bij

  4. Hoe kan ik aggregatie schrijven zonder de maximale documentgrootte te overschrijden?