Maison  >  Article  >  Java  >  Pourquoi Redis est-il monothread ?

Pourquoi Redis est-il monothread ?

王林
王林original
2020-04-29 14:05:184520parcourir

Pourquoi Redis est-il monothread ?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn