Maison > base de données > Redis > le corps du texte

Redis Learning parle du modèle de réacteur monothread

青灯夜游
Libérer: 2021-12-09 09:54:53
avant
1961 Les gens l'ont consulté

Cet article parlera du modèle de réacteur monothread, du modèle d'E/S et du modèle d'E/S multithread dans Redis. J'espère qu'il vous sera utile !

Redis Learning parle du modèle de réacteur monothread

hautes performances de redis

  • accès à la mémoire pure, toutes les données sont en mémoire, toutes les opérations sont des opérations au niveau de la mémoire et le temps de réponse de la mémoire est au niveau de la nanoseconde. Par conséquent, le processeur du processus Redis n'a fondamentalement pas de temps d'attente d'E/S disque et de problèmes de performances de lecture et d'écriture de la mémoire. Le CPU n'est pas le goulot d'étranglement de Redis (la taille de la mémoire et les E/S réseau sont le goulot d'étranglement de Redis, c'est-à-dire). c'est-à-dire l'écart entre le client et le serveur. [Recommandations associées : Tutoriel vidéo Redis]
  • adopte un modèle monothread et la mise en œuvre monothread est simple. Évite la surcharge causée par les changements de contexte fréquents des multi-threads et les mécanismes de synchronisation tels que les verrous. Structures de données de base simples et efficaces : chaînes dynamiques (SDS), listes chaînées, dictionnaires, listes chaînées de saut, ensembles d'entiers et listes compressées. Ensuite, redis utilise cette base pour implémenter des objets que les utilisateurs peuvent utiliser : chaînes, listes, hachages, ensembles, ensembles ordonnés et autres objets
  • processeur d'événements réseau en mode réacteur. Il utilise le multiplexage d'E/S pour surveiller plusieurs sockets en même temps, ce qui constitue un modèle d'E/S efficace. Pour des connaissances liées au réacteur, vous pouvez lire cet article
  • Article sur le framework : Voir le modèle Linux haute performance IO+Reactor du réseau
Pourquoi utiliser un seul thread

Utilisez un seul thread pour éviter les changements de contexte inutiles et les conditions de concurrence ; Il n'y a pas de consommation de processeur due à la commutation causée par le multi-threading
  • Il n'est pas nécessaire de prendre en compte divers problèmes de verrouillage, il n'y a pas d'opération de verrouillage et de libération des verrous, et il n'y a pas de consommation de performances causée par d'éventuels blocages
  • Simple et maintenable, le mode multithread rendra l'écriture du programme plus complexe et plus gênante. La mise en œuvre monothread est facile à mettre en œuvre
redis est un système monothread ?

Nous disons souvent que Redis est monothread car son réacteur de modèle de traitement des événements réseau est monothread
  • Si une demande client supprime des millions de valeurs de clé, cette commande peut provoquer un blocage. Dans redis 4.0, nous avons choisi d'introduire le multi-threading pour implémenter ce type de commandes non bloquantes
  • Dans la version redis 6.0, le multi-threading a été officiellement introduit pour gérer les réponses d'E/S de lecture et d'écriture du client, tandis que le traitement de redis les événements de commande sont toujours traités sur une seule ligne sur le thread principal
  • Si c'est pour l'ensemble du système Redis, il y a toujours d'autres threads pour gérer les tâches asynchrones, telles que la synchronisation AOF et RDB
le modèle d'E/S redis. Le traitement de

redis est rapide, pas seulement parce qu'il s'agit d'un système de mémoire pur à thread unique. Le système de mémoire adopte également le modèle Reactor et utilise le multiplexage d'E/S pour traiter les requêtes externes et réduire la connexion réseau et les temps d'attente de lecture et d'écriture. Il peut gérer un grand nombre de requêtes client simultanément dans les opérations d'E/S réseau, atteignant un débit élevé et une concurrence élevée

Redis Learning parle du modèle de réacteur monothread

modèle d'E/S version multithread de redis 6.0

Redis Learning parle du modèle de réacteur monothreadPlus Pour la programmation connaissances connexes, veuillez visiter :

Introduction à la 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!

Étiquettes associées:
source:juejin.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!