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

Redis og Node.js og Socket.io spørgsmål

Så hver "bruger" bør have deres egen redis-klient i forbindelsesbegivenheden. Har jeg ret?

Det er du faktisk ikke :)

Sagen er, at node.js er meget ulig for eksempel PHP. node.js afføder ikke underordnede processer på nye forbindelser, hvilket er en af ​​hovedårsagerne til, at det nemt kan håndtere store mængder af samtidige forbindelser, inklusive langlivede forbindelser (Comet, Websockets, etc.). node.js behandler hændelser sekventielt ved hjælp af en hændelseskø inden for en enkelt proces. Hvis du vil bruge flere processer til at drage fordel af multi-core servere eller flere servere, bliver du nødt til at gøre det manuelt (hvordan man gør det er dog uden for dette spørgsmåls omfang).

Derfor er det en perfekt valid strategi at bruge en enkelt Redis (eller MySQL) forbindelse til at betjene en stor mængde klienter. Dette undgår omkostningerne ved at instantiere og afslutte en databaseforbindelse for hver klientanmodning.



  1. Nodejs Mongo indsæt i underdokument - dynamisk feltnavn

  2. Tæl resultater med MongoDB 3.0 Java Driver

  3. Top 5 fordele ved Shared MongoDB Hosting

  4. Hvordan hideIndex() virker i MongoDB