sql >> Database >  >> NoSQL >> Redis

Vragen over Redis en Node.js en Socket.io

Dus elke "gebruiker" zou zijn eigen redis-client moeten hebben binnen de verbindingsgebeurtenis. Heb ik gelijk?

Eigenlijk ben je dat niet :)

Het punt is dat node.js heel anders is dan bijvoorbeeld PHP. node.js spawnt geen onderliggende processen op nieuwe verbindingen, wat een van de belangrijkste redenen is waarom het gemakkelijk grote hoeveelheden gelijktijdige verbindingen aankan, inclusief langdurige verbindingen (Comet, Websockets, enz.). node.js verwerkt gebeurtenissen opeenvolgend met behulp van een gebeurteniswachtrij binnen één enkel proces. Als u meerdere processen wilt gebruiken om te profiteren van multi-core servers of meerdere servers, moet u dit handmatig doen (hoe u dit doet valt echter buiten het bestek van deze vraag).

Daarom is het een perfect geldige strategie om één enkele Redis (of MySQL)-verbinding te gebruiken om een ​​groot aantal klanten te bedienen. Dit vermijdt de overhead van het instantiëren en beëindigen van een databaseverbinding voor elk clientverzoek.



  1. MongoDB Java Driver databaseverbinding pooling met Tomcat

  2. Hoe u hoofdletterongevoelige indexen maakt in MongoDB

  3. NoSQL (MongoDB) vs Lucene (of Solr) als uw database

  4. Nieuwe validator toevoegen aan bestaande collectie