Heim  >  Artikel  >  Datenbank  >  Warum ist die Leistung von Redis so hoch?

Warum ist die Leistung von Redis so hoch?

步履不停
步履不停Original
2019-06-24 13:18:202790Durchsuche

Warum ist die Leistung von Redis so hoch?

(1) Redis ist eine nicht relationale In-Memory-Datenbank. Die Lesegeschwindigkeit im Speicher ist sehr hoch , der Speicher ist nicht der Flaschenhals. Unter normalen Umständen können Hash-Suchvorgänge mehrere Millionen Mal pro Sekunde erfolgen.

(2) Verwenden Sie einen einzelnen Thread, um unnötige Kontextwechsel und Race Conditions zu vermeiden.

(3) Die interne Implementierung verwendet Epoll, wobei Epoll + ein einfaches, von ihm selbst implementiertes Ereignis-Framework verwendet wird. 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.

Erweiterte Lektüre

Redis ist eine Open-Source-Protokoll-Schlüssel-Wert-Datenbank, die in ANSI C-Sprache geschrieben ist, Netzwerke unterstützt und speicherbasiert und persistent sein kann . Und bietet APIs in mehreren Sprachen. Seit dem 15. März 2010 wird die Entwicklung von Redis von VMware gehostet. Seit Mai 2013 wird die Entwicklung von Redis von Pivotal gesponsert.

Redis ist ein Schlüsselwertspeichersystem. Ähnlich wie Memcached unterstützt es relativ mehr gespeicherte Werttypen, einschließlich String (String), Liste (verknüpfte Liste), Set (Satz), Zset (sortierter Satz – geordneter Satz) und Hash (Hash-Typ). Diese Datentypen unterstützen alle Push/Pop-, Add/Remove-, Schnitt-, Vereinigungs-, Differenz- und umfangreichere Operationen und diese Operationen sind alle atomar. Auf dieser Basis unterstützt Redis verschiedene Sortierarten. Wie bei Memcached werden Daten im Speicher zwischengespeichert, um die Effizienz sicherzustellen. Der Unterschied besteht darin, dass Redis regelmäßig aktualisierte Daten auf die Festplatte schreibt oder Änderungsvorgänge in zusätzliche Datensatzdateien schreibt und auf dieser Grundlage eine Master-Slave-Synchronisation (Master-Slave) erreicht wird.

Redis ist eine leistungsstarke Schlüsselwertdatenbank. Das Aufkommen von Redis hat die Mängel der Schlüssel-/Wertspeicherung wie Memcached weitgehend ausgeglichen und kann in manchen Situationen eine sehr gute Ergänzung zu relationalen Datenbanken spielen. Es bietet Java, C/C++, C#, PHP, JavaScript, Perl, Object-C, Python, Ruby, Erlang und andere Clients, was sehr bequem zu verwenden ist.

Redis unterstützt die Master-Slave-Synchronisation. Daten können vom Master-Server mit einer beliebigen Anzahl von Slave-Servern synchronisiert werden, und der Slave-Server kann ein Master-Server sein, der mit anderen Slave-Servern verbunden ist. Dadurch kann Redis eine einstufige Baumreplikation durchführen. Beim Speichern können Daten absichtlich oder unabsichtlich geschrieben werden. Da der Publish/Subscribe-Mechanismus vollständig implementiert ist, kann die Slave-Datenbank, wenn sie den Baum irgendwo synchronisiert, einen Kanal abonnieren und den vollständigen Nachrichtenfreigabedatensatz des Master-Servers empfangen. Die Synchronisierung ist hilfreich für die Skalierbarkeit und Datenredundanz von Lesevorgängen.

Die offizielle Website-Adresse von Redis ist sehr leicht zu merken, sie lautet redis.io. (Ich habe speziell nachgesehen und festgestellt, dass das Domainnamensuffix io ​​zum nationalen Domainnamen gehört, bei dem es sich um das Territorium des Britischen Indischen Ozeans handelt, also um das Britische Territorium im Indischen Ozean.)

Derzeit finanziert Vmware die Entwicklung und Wartung des Redis-Projekts.

Weitere technische Artikel zum Thema Redis finden Sie in der Spalte Redis-Tutorial, um mehr zu erfahren!

Das obige ist der detaillierte Inhalt vonWarum ist die Leistung von Redis so hoch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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