Maison >base de données >Redis >Pourquoi Redis est-il rapide ?

Pourquoi Redis est-il rapide ?

(*-*)浩
(*-*)浩original
2019-11-21 13:32:167400parcourir

Pourquoi Redis est-il rapide ?

1. Entièrement basées sur la mémoire, la plupart des requêtes sont des opérations purement mémoire, très rapides. Les données sont stockées en mémoire, comme HashMap. L'avantage de HashMap est que la complexité temporelle de la recherche et de l'opération est O(1)

2. est également simple.Dans Redis La structure des données est spécialement conçue ;

3,

utilise un seul thread pour éviter les changements de contexte inutiles et les conditions de concurrence, et il n'y a pas de commutation causée par plusieurs processus ou threads qui consomment. le processeur. 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 verrouillage, et il n'y a pas de consommation de performances causée par d'éventuels blocages 4. canal I/O complexe Utiliser des modèles, IO non bloquants

5, utilisent différents modèles sous-jacents, les méthodes d'implémentation sous-jacentes et les protocoles d'application pour la communication avec le client sont directement différents. construit lui-même le mécanisme VM, parce que le système général appelle les fonctions du système, il faudra un certain temps pour se déplacer et demander

Les points ci-dessus sont relativement faciles à comprendre Ci-dessous. focus sur les E/S multicanaux Une brève discussion du modèle de réutilisation :

(1) Modèle de réutilisation des E/S multicanaux

La réutilisation des E/S multicanaux Le modèle peut utiliser select, poll et epoll. La possibilité de surveiller les événements d'E/S de plusieurs flux en même temps bloquera le thread actuel lorsqu'il est inactif. Lorsqu'un ou plusieurs flux ont des événements d'E/S, il se réveillera. de l'état bloqué, et le programme interrogera tous les flux (epoll interroge uniquement les flux qui émettent réellement des événements) et ne traitera que les flux prêts en séquence, cette approche évite de nombreuses opérations inutiles.

Ici, « multicanal » fait référence à plusieurs connexions réseau, et « réutilisation » fait référence à la réutilisation du même fil. 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), et Redis exploite les données en mémoire très rapidement, ce qui signifie que les opérations en mémoire ne le feront pas. devenir un goulot d'étranglement qui affecte les performances de Redis. Les points ci-dessus contribuent principalement au débit élevé 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:
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