Redis est monothread, ce qui permet de gagner beaucoup de temps pour les threads de changement de contexte.
Pourquoi Redis est-il monothread ?
1. Explication du site officiel
Puisque Redis est une opération basée sur la mémoire, le CPU n'est pas le goulot d'étranglement de Redis. Le goulot d’étranglement de Redis réside probablement dans la taille de la mémoire de la machine ou de la bande passante du réseau. Étant donné que le monothreading est facile à mettre en œuvre et que le CPU ne devient pas un goulot d'étranglement, il est logique d'adopter une solution monothread.
(Tutoriel vidéo recommandé : vidéo Java )
2 Indicateurs de performance
Les cahiers ordinaires peuvent facilement traiter des centaines par seconde. de milliers de demandes.
3. Raisons détaillées
1. La consommation de performances de divers verrous n'est pas requise
Toutes les structures de données Redis ne sont pas de simples valeurs clés ( Key-Value), mais ont des structures complexes telles que des listes et des hachages. Ces structures peuvent effectuer des opérations précises, telles que l'ajout d'éléments à la fin d'une longue liste et leur ajout à un hachage ou la suppression d'objets.
Ces opérations peuvent nécessiter un très grand nombre de verrous, entraînant une augmentation significative de la surcharge de synchronisation. En bref, dans le cas d'un seul thread, il n'est pas nécessaire de prendre en compte divers verrous, aucune opération de déverrouillage et aucune consommation de performances due à d'éventuels blocages.
2. Solution de cluster multi-processus monothread
La fonction du monothread est en fait très puissante et l'efficacité de chaque cœur est également très élevée. Le multithreading peut naturellement avoir des limites de performances plus élevées que le monothreading. Cependant, dans l'environnement informatique actuel, même les contraintes multithread sur une seule machine ne peuvent souvent pas être respectées. Ce qui nécessite une exploration plus approfondie, ce sont les scénarios de clustering multi-serveurs, et la technologie multi-thread dans ces scénarios n'est toujours pas disponible.
Un cluster multi-processus monothread est donc une bonne solution.
Tutoriel recommandé : Programme d'entrée Java
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!