Redis ist eine nicht relationale In-Memory-Datenbank und die Lesegeschwindigkeit im Speicher ist sehr hoch. Der Speicher ist nicht der Flaschenhals. Im Allgemeinen können Hash-Suchvorgänge millionenfach pro Sekunde erfolgen. (Empfohlenes Lernen: Redis-Video-Tutorial)
Verwendung eines einzelnen Threads, um unnötigen Kontextwechsel und Race Conditions zu vermeiden
Die interne Implementierung verwendet Epoll. unter Verwendung eines einfachen, von epoll+ selbst implementierten Event-Frameworks. Lesen, Schreiben, Schließen und Verbinden in Epoll werden alle in Ereignisse umgewandelt und dann die Multiplexing-Funktion von Epoll verwendet, um keine Zeit mit io zu verschwenden
Weil Redis-Vorgänge sehr schnell sind – –Alles Die Daten befinden sich im Speicher und es besteht überhaupt keine Notwendigkeit, auf die Festplatte zuzugreifen. Was die Parallelität betrifft, verwendet Redis Mehrkanal-E/A-Multiplexing-Technologie, und seine eigene Parallelitätseffizienz stellt kein Problem dar.
Natürlich kann ein einzelner Redis-Prozess nicht mehrere Kerne verwenden (er kann immer nur auf einem CPU-Kern ausgeführt werden), aber es handelt sich nicht um einen sehr rechenintensiven Dienst. Sollte die Single-Core-Leistung nicht ausreichen, können Sie mehrere weitere Prozesse öffnen.
Redis verwendet ein Single-Thread-Modell, das die Atomizität jeder Operation gewährleistet und den Thread-Kontextwechsel und die Konkurrenz reduziert.
Darüber hinaus verwendet Redis während des gesamten Prozesses eine Hash-Struktur, die eine schnelle Lesegeschwindigkeit bietet. Es gibt auch einige spezielle Datenstrukturen, die die Datenspeicherung optimieren Komprimieren und speichern Sie kurze Daten. Ein weiteres Beispiel sind Sprungtabellen. Verwenden Sie geordnete Datenstrukturen, um das Lesen zu beschleunigen.
Ein weiterer Punkt ist, dass Redis einen eigenen Ereignisseparator verwendet, der intern eine nicht blockierende Ausführungsmethode verwendet und eine relativ große Durchsatzkapazität aufweist.
String-Typ, binärsicher
Hash-Typ, ist eine Sammlung von Schlüssel-Wert-Paaren
Die unterste Ebene der Listenliste ist eine verknüpfte Liste
Set-Sammlung Es ist nicht erforderlich, Hashtale zu verwenden, um
zset sort set ordered set
Weitere technische Artikel zu Redis finden Sie im Tutorial zur Einführung in die Redis-Datenbanknutzung Kolumne zum Lernen!
Das obige ist der detaillierte Inhalt vonWarum Redis eine gute Leistung hat. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!