Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Perguntas sobre Redis, Node.js e Socket.io


Assim, cada "usuário" deve ter seu próprio cliente redis dentro do evento de conexão. Estou certo?

Na verdade, você não é :)

O fato é que node.js é muito diferente, por exemplo, do PHP. O node.js não gera processos filho em novas conexões, que é uma das principais razões pelas quais ele pode lidar facilmente com grandes quantidades de conexões simultâneas, incluindo conexões de longa duração (Comet, Websockets, etc.). node.js processa eventos sequencialmente usando uma fila de eventos em um único processo. Se você quiser usar vários processos para tirar proveito de servidores multi-core ou vários servidores, terá que fazê-lo manualmente (como fazê-lo está além do escopo desta questão).

Portanto, é uma estratégia perfeitamente válida usar uma única conexão Redis (ou MySQL) para atender a uma grande quantidade de clientes. Isso evita a sobrecarga de instanciar e encerrar uma conexão de banco de dados para cada solicitação do cliente.