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.
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-ModellDas 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!