Maison base de données Redis Pourquoi le thread unique Redis s'exécute-t-il si rapidement ?

Pourquoi le thread unique Redis s'exécute-t-il si rapidement ?

Jul 04, 2019 am 11:44 AM

Pourquoi le thread unique Redis s'exécute-t-il si rapidement ?

La raison pour laquelle Redis s'exécute très rapidement dépend principalement des raisons suivantes :

(1) Fonctionnement en mémoire pure, évite les accès massifs à la base de données et réduit les lectures directes sur le disque données, redis stocke les données en mémoire. Lors de la lecture et de l'écriture des données, elles ne sont pas limitées par la vitesse d'E/S du disque dur, donc la vitesse est rapide

(2) Le fonctionnement à un seul thread évite les inutiles ; pas de changement de contexte ni de conditions de concurrence, et il n'y a pas de consommation de processeur due à la commutation causée par le multi-processus ou 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érations de verrouillage et de libération du verrou, et il n'y a pas de performances. consommation causée par d'éventuels blocages ;

(3) Un mécanisme de multiplexage d'E/S non bloquant est adopté

Principe de multiplexage :

Pourquoi le thread unique Redis sexécute-t-il si rapidement ?

Utilisateur Ajoutez d'abord le socket qui nécessite des opérations d'E/S à la sélection, puis bloquez et attendez le retour de l'appel système de sélection. Lorsque les données arrivent, le socket est activé et la fonction de sélection revient. Le thread utilisateur lance formellement une demande de lecture, lit les données et poursuit l'exécution. De cette façon, les utilisateurs peuvent enregistrer plusieurs sockets, puis appeler en continu select pour lire les sockets activés. Le serveur Redis place ensuite ces sockets dans la file d'attente. Ensuite, le répartiteur d'événements de fichier va à son tour dans la file d'attente et les transmet à différents traitements d'événements. dans le processeur pour améliorer l’efficacité de la lecture.

L'utilisation de la technologie de multiplexage d'E/S multicanal permet à un seul thread de gérer efficacement plusieurs demandes de connexion (minimisant la consommation de temps des E/S du réseau. Le modèle de multiplexage d'E/S multicanal utilise select, poll, epoll). a la capacité de surveiller les événements d'E/S de plusieurs flux en même temps. Lorsqu'il est inactif, il bloque le thread actuel. Lorsqu'un ou plusieurs flux ont des événements d'E/S, il se réveille de l'état bloqué. le programme Tous les flux seront interrogés (epoll n'interroge que les flux qui émettent réellement des événements), et seuls les flux prêts seront traités séquentiellement. Cette approche évite un grand nombre d'opérations inutiles, améliorant ainsi l'efficacité.

(4) Structures de données flexibles et diversifiées.

Redis utilise un objet redisObject en interne pour représenter toutes les clés et valeurs. Les informations principales de redisObject incluent le type de données, la méthode de codage, le pointeur de données, la mémoire virtuelle, etc. Il contient cinq types de données : chaîne, hachage, liste, ensemble et ensemble trié. Les types de données correspondants sont utilisés pour différents scénarios, ce qui réduit non seulement l'utilisation de la mémoire, mais enregistre également la transmission du trafic réseau.

(5) Persistance

Étant donné que les données Redis sont stockées en mémoire, si la persistance n'est pas configurée, toutes les données seront perdues après le redémarrage de Redis, la fonction de persistance de Redis doit donc être activée , enregistrez les données sur le disque et lorsque Redis est redémarré, les données peuvent être restaurées à partir du disque. Redis fournit deux méthodes de persistance, l'une est la persistance RDB (le principe est de vider régulièrement les enregistrements de base de données de Redis en mémoire vers la persistance RDB sur le disque), et l'autre est la persistance AOF (ajouter uniquement un fichier) (le principe est d'écrire le journal des opérations Redis dans le fichier en annexe). La persistance ne semble pas être directement liée à la vitesse de Redis, mais elle garantit la sécurité et la fiabilité des données Redis et joue également un rôle dans la sauvegarde des données.

(6) Résumé

Imaginez si un seul thread ne peut pas exercer les performances du processeur multicœur. En fait, ce n'est pas le cas. Nous pouvons l'améliorer en ouvrant plusieurs instances Redis sur un seul. machine. Un seul thread ne peut utiliser qu'un seul cœur de processeur, de sorte que plusieurs instances peuvent être démarrées sur le même serveur multicœur pour former un maître-maître ou un maître-esclave. Des commandes de lecture fastidieuses peuvent être entièrement exécutées sur l'esclave, permettant ainsi une lecture complète. pour redéfinir le rôle.

Un seul thread fait référence au module de requête réseau utilisant un seul thread (il n'est donc pas nécessaire de prendre en compte la sécurité de la concurrence. D'autres modules utiliseront également plusieurs threads. Profitez pleinement de ses avantages lors de l'utilisation de Redis et évitez certaines erreurs). le fonctionnement peut entraîner une dégradation des performances.

Pour plus de connaissances sur Redis, veuillez visiter la colonne Tutoriel d'utilisation de Redis !

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 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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment mettre en œuvre l'authentification et l'autorisation dans Redis? Comment mettre en œuvre l'authentification et l'autorisation dans Redis? Mar 17, 2025 pm 06:57 PM

L'article discute de la mise en œuvre de l'authentification et de l'autorisation dans Redis, en se concentrant sur l'activation de l'authentification, en utilisant les ACL et les meilleures pratiques pour sécuriser Redis. Il couvre également la gestion des autorisations et des outils des utilisateurs pour améliorer la sécurité Redis.

Comment choisir une clé de fragment dans le cluster redis? Comment choisir une clé de fragment dans le cluster redis? Mar 17, 2025 pm 06:55 PM

L'article discute du choix des clés de fragment dans le cluster Redis, mettant l'accent sur leur impact sur les performances, l'évolutivité et la distribution des données. Les problèmes clés incluent d'assurer une distribution de données, une alignement sur les modèles d'accès et d'éviter les erreurs courantes L

Comment utiliser Redis pour les files d'attente et le traitement des antécédents? Comment utiliser Redis pour les files d'attente et le traitement des antécédents? Mar 17, 2025 pm 06:51 PM

L'article discute de l'utilisation de Redis pour les files d'attente de travaux et le traitement des antécédents, la configuration de détail, la définition du travail et l'exécution. Il couvre les meilleures pratiques comme les opérations atomiques et la hiérarchisation des travaux, et explique comment Redis améliore l'efficacité du traitement.

Comment mettre en œuvre des stratégies d'invalidation du cache dans Redis? Comment mettre en œuvre des stratégies d'invalidation du cache dans Redis? Mar 17, 2025 pm 06:46 PM

L'article traite des stratégies de mise en œuvre et de gestion de l'invalidation du cache dans Redis, y compris l'expiration basée sur le temps, les méthodes axées sur les événements et le versioning. Il couvre également les meilleures pratiques pour l'expiration du cache et les outils pour la surveillance et l'automate

Comment utiliser Redis pour les messages pub / sous? Comment utiliser Redis pour les messages pub / sous? Mar 17, 2025 pm 06:48 PM

L'article explique comment utiliser Redis pour les messages pub / sous, couvrant la configuration, les meilleures pratiques, assurer la fiabilité des messages et la surveillance des performances.

Comment surveiller les performances d'un cluster redis? Comment surveiller les performances d'un cluster redis? Mar 17, 2025 pm 06:56 PM

L'article traite de la surveillance des performances et de la santé du cluster Redis à l'aide d'outils comme Redis CLI, Redis Insight et des solutions tierces comme Datadog et Prometheus.

Comment utiliser Redis pour la gestion des sessions dans les applications Web? Comment utiliser Redis pour la gestion des sessions dans les applications Web? Mar 17, 2025 pm 06:47 PM

L'article traite de l'utilisation de Redis pour la gestion des sessions dans les applications Web, de la configuration de détail, des avantages tels que l'évolutivité et les performances et les mesures de sécurité.

Comment assurer Redis contre les vulnérabilités communes? Comment assurer Redis contre les vulnérabilités communes? Mar 17, 2025 pm 06:57 PM

L'article traite de la sécurisation Redis contre les vulnérabilités, en se concentrant sur des mots de passe forts, une liaison réseau, une désactivation des commandes, l'authentification, le chiffrement, les mises à jour et la surveillance.

See all articles