Heim > Datenbank > Redis > Hauptteil

Warum Redis eine gute Leistung hat

(*-*)浩
Freigeben: 2019-11-22 10:56:43
Original
2385 Leute haben es durchsucht

Warum Redis eine gute Leistung hat

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!

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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!