Maison > Article > base de données > Pourquoi Redis utilise-t-il un seul thread ? Pourquoi si vite ?
Qu'est-ce qu'un seul fil de redis ? Pourquoi Redis utilise-t-il un seul thread ? Pourquoi Redis monothread est-il si rapide ? L’article suivant vous en donnera une analyse et j’espère qu’il vous sera utile !
Qu'est-ce que le thread unique de redis (la fonction principale est sur le thread unique, pas toutes les fonctions)
Le réseau IO et la lecture des paires clé-valeur et L'écriture de Redis est effectuée par Complété par un seul thread (service principal de Redis)
Les autres fonctions de Redis sont complétées par des threads supplémentaires
[ Recommandations associées : Tutoriel vidéo Redis】
La surcharge du multi-threading
L'utilisation du multi-threading peut augmenter le débit du système (par requête) et augmenter l'évolutivité du système.
Illimité L'augmentation du nombre de threads entraîne une diminution du débit
Par conséquent, afin d'économiser la gestion des ressources simultanées, redis utilise un seul thread pour garantir que toutes les opérations sont sérialisé
processus de communication par socket (traitement des E/S réseau + lecture et écriture de paires clé-valeur + traitement des E/S réseau)
Points de blocage potentiels
accept() bloquera toujours s'il ne parvient pas à établir une connexion
recv() Lors de la lecture des données du client, bloquera toujours
Le mécanisme de multiplexage IO sous Linux fait référence à un thread traitant plusieurs flux IO, sélectionnez /poll
Dans un seul thread, plusieurs sockets et sockets connectés sont surveillés en même temps
Implémentation spécifique
FD est à sockets multiples
Redis utilise le mécanisme epoll, permettant au noyau d'écouter le socket
Redis peut se connecter à plusieurs clients et traiter les requêtes, améliorant ainsi la concurrence
select/epoll fournit un mécanisme de rappel basé sur les événements, appelant le traitement correspondant pour différents événements. La fonction
Redis est-il vraiment monothread
Pourquoi utiliser un seul thread
Pourquoi un seul thread est-il si rapide
Pour plus de connaissances sur la programmation, veuillez visiter : Vidéo de programmation ! !
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!