Heim > häufiges Problem > Warum ist die Redis-Abfrage schnell?

Warum ist die Redis-Abfrage schnell?

(*-*)浩
Freigeben: 2020-09-17 11:54:24
Original
9521 Leute haben es durchsucht

Methoden für eine schnelle Redis-Abfrage: 1. Die Redis-Abfrage basiert vollständig auf dem Speicher. 2. Die Datenstruktur in Redis ist einfach. 3. Redis verwendet einen Mehrkanal-I /O Multiplexing-Modell; 5. Redis erstellt einen VM-Mechanismus.

Warum ist die Redis-Abfrage schnell?

In der Karriere eines Programmierers wird mich das Einrichten des Caches daran erinnern, die Steuerung der Parallelität wird mich daran erinnern, und die Erstellung von komprimiertem Speicher wird mich immer noch daran erinnern davon, und bleiben Sie immer im Wissen Der Ausgangspunkt, aber es gibt keine eingehende Untersuchung und Zusammenfassung der Gründe, warum es so beliebt ist. In letzter Zeit sind Zeit, Ort und Leute günstig und ich habe jedes Detail geklärt.

1. Die meisten Anfragen basieren vollständig auf dem Speicher und sind reine Speicheroperationen, die sehr schnell sind. Die Daten werden im Speicher gespeichert, ähnlich wie bei HashMap. Der Vorteil von HashMap besteht darin, dass die Zeitkomplexität von Suche und Betrieb O(1) ist Einfach. Die Datenstruktur in Redis ist speziell entwickelt. Es wird ein einzelner Thread verwendet, um unnötige Kontextwechsel und Konkurrenzbedingungen zu vermeiden CPU, und es besteht keine Notwendigkeit, verschiedene Sperren zu berücksichtigen, und es gibt keinen Leistungsverbrauch durch mögliche Deadlocks.

4 , nicht blockierendes IO;

5. Die zugrunde liegenden Modelle sind unterschiedlich, die zugrunde liegenden Implementierungsmethoden und die Anwendungsprotokolle für die Kommunikation mit dem Client sind unterschiedlich, da Redis den VM-Mechanismus direkt selbst erstellt Systemaufrufe führen zu einer gewissen Zeitverschwendung.

Die oben genannten Punkte sind relativ einfach zu verstehen:

(1) Mehrkanal-E/A-Multiplexing-Modell

Das Mehrkanal-E/A-Multiplexing-Modell verwendet Select, Poll und Epoll, um die E/A-Ereignisse von zu überwachen Wenn mehrere Streams gleichzeitig inaktiv sind, ist der Thread blockiert. Wenn ein oder mehrere Streams E/A-Ereignisse aufweisen, wacht das Programm auf, wenn alle Streams abgefragt werden tatsächlich ausgegebene Ereignisse). Und verarbeiten Sie die bereitstehenden Streams nur der Reihe nach, wodurch viele nutzlose Vorgänge vermieden werden. Hier bezieht sich „Mehrkanal“ auf mehrere Netzwerkverbindungen und „Wiederverwendung“ auf die Wiederverwendung desselben Threads. Durch die Verwendung der Mehrkanal-E/A-Multiplexing-Technologie kann ein einzelner Thread mehrere Verbindungsanforderungen effizient verarbeiten (wodurch der Zeitverbrauch von Netzwerk-E/A minimiert wird), und Redis verarbeitet Daten im Speicher sehr schnell, was bedeutet, dass Vorgänge im Speicher nicht ausgeführt werden wird zu einem Engpass, der die Leistung von Redis beeinträchtigt. Die oben genannten Punkte tragen hauptsächlich zum hohen Durchsatz von Redis bei.

Das obige ist der detaillierte Inhalt vonWarum ist die Redis-Abfrage schnell?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage