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

Domande su Redis e Node.js e Socket.io

Quindi, ogni "utente" dovrebbe avere il proprio client redis all'interno dell'evento di connessione. Ho ragione?

In realtà, non lo sei :)

Il fatto è che node.js è molto diverso, ad esempio, da PHP. node.js non genera processi figlio su nuove connessioni, che è uno dei motivi principali per cui può gestire facilmente grandi quantità di connessioni simultanee, comprese le connessioni di lunga durata (Comet, Websocket, ecc.). node.js elabora gli eventi in sequenza utilizzando una coda di eventi all'interno di un singolo processo. Se desideri utilizzare diversi processi per sfruttare server multi-core o più server, dovrai farlo manualmente (come farlo va oltre lo scopo di questa domanda, però).

Pertanto, è una strategia perfettamente valida utilizzare una singola connessione Redis (o MySQL) per servire una grande quantità di client. Ciò evita il sovraccarico di creare un'istanza e terminare una connessione al database per ogni richiesta del client.