Maison > Article > base de données > Pourquoi Redis est monothread
Alors pourquoi Redis est-il monothread ?
Il faut d'abord comprendre que Redis est rapide ! La FAQ officielle indique que, comme Redis est une opération basée sur la mémoire, le processeur n'est pas le goulot d'étranglement de Redis. Le goulot d'étranglement de Redis est très probablement être la taille de la mémoire de la machine ou la bande passante du réseau. Puisque le monothreading est facile à mettre en œuvre et que le CPU ne deviendra pas un goulot d'étranglement, il est logique d'adopter une solution monothread (après tout, utiliser le multithreading causera beaucoup de problèmes !) . (Apprentissage recommandé : Tutoriel vidéo Redis)
En voyant cela, vous risquez de pleurer de colère ! Je pensais qu'il y aurait des points techniques majeurs qui rendraient Redis si rapide en utilisant un seul thread, mais je ne m'attendais pas à une réponse officielle qui semblerait nous tromper ! Cependant, nous pouvons déjà expliquer clairement pourquoi Redis est si rapide, et précisément parce qu'il est déjà rapide en mode monothread, il n'est pas nécessaire d'utiliser le multi-threading !
Cependant, notre approche monothread ne peut pas tirer parti des performances du processeur multicœur, mais nous pouvons l'améliorer en ouvrant plusieurs instances Redis sur une seule machine !
Avertissement 1 : Le thread unique que nous avons souligné ici n'a qu'un seul thread pour traiter nos requêtes réseau Lorsqu'un serveur Redis formel est en cours d'exécution, il doit y avoir plus d'un thread. un fil de discussion, tout le monde doit y prêter une attention particulière ! Par exemple, lorsque Redis est persistant, il sera exécuté en tant que sous-processus ou sous-thread (le sous-thread ou sous-processus spécifique doit être étudié en profondeur par le lecteur
Le " ); -T" de la commande ps indique le thread d'affichage (Afficher les threads, éventuellement avec la colonne SPID.) La colonne "SID" indique l'ID du thread et la colonne "CMD" affiche le nom du thread.
Avertissement 2 : Le dernier paragraphe de la FAQ officielle indique que le multi-threading sera supporté à partir de la version 4.0 de Redis. Cependant, les opérations multi-threading ne sont effectuées que sur certaines opérations ! Par conséquent, les lecteurs doivent vérifier si cet article sera toujours monothread dans les versions futures !
Pour plus d'articles techniques liés à Redis, veuillez visiter la colonne Introduction au didacticiel d'utilisation de la base de données Redis pour apprendre !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!