Redis
 sql >> Base de données >  >> NoSQL >> Redis

Questions sur Redis et Node.js et Socket.io

Ainsi, chaque « utilisateur » devrait avoir son propre client Redis dans l'événement de connexion. Ai-je raison ?

En fait, vous n'êtes pas :)

Le fait est que node.js est très différent, par exemple, de PHP. node.js ne génère pas de processus enfants sur les nouvelles connexions, ce qui est l'une des principales raisons pour lesquelles il peut facilement gérer de grandes quantités de connexions simultanées, y compris des connexions de longue durée (Comet, Websockets, etc.). node.js traite les événements de manière séquentielle à l'aide d'une file d'attente d'événements au sein d'un seul processus. Si vous souhaitez utiliser plusieurs processus pour tirer parti des serveurs multicœurs ou de plusieurs serveurs, vous devrez le faire manuellement (comment procéder dépasse cependant le cadre de cette question).

Par conséquent, c'est une stratégie parfaitement valable d'utiliser une seule connexion Redis (ou MySQL) pour servir une grande quantité de clients. Cela évite la surcharge liée à l'instanciation et à l'arrêt d'une connexion à la base de données pour chaque requête client.