Heim  >  Artikel  >  Java  >  Warum ist Redis Single-Threaded?

Warum ist Redis Single-Threaded?

王林
王林Original
2020-04-29 14:05:184563Durchsuche

Warum ist Redis Single-Threaded?

Redis ist Single-Threaded, was viel Zeit für Kontextwechsel-Threads spart.

Warum ist Redis Single-Threaded?

1. Offizielle Website-Erklärung

Da Redis ein speicherbasierter Vorgang ist, ist die CPU nicht der Engpass von Redis. Der Engpass von Redis liegt höchstwahrscheinlich in der Größe des Maschinenspeichers oder der Netzwerkbandbreite. Da Single-Threading einfach zu implementieren ist und die CPU nicht zum Engpass wird, ist es logisch, eine Single-Threaded-Lösung zu übernehmen.

(Empfohlenes Video-Tutorial: Java-Video )

2. Leistungsindikatoren

Gewöhnliche Notebooks können problemlos Hunderte pro Sekunde verarbeiten von Tausenden von Anfragen.

3. Detaillierte Gründe

1. Der Leistungsverbrauch verschiedener Sperren ist nicht erforderlich

Nicht alle Redis-Datenstrukturen sind einfache Schlüsselwerte (Schlüsselwert), verfügen aber über komplexe Strukturen wie Listen und Hashes. Diese Strukturen können feinkörnige Operationen ausführen, wie zum Beispiel das Anhängen von Elementen an das Ende einer langen Liste und das Hinzufügen zu einem Hash oder das Löschen von Objekten.

Diese Vorgänge erfordern möglicherweise eine sehr große Anzahl von Sperren, was zu einem erheblichen Anstieg des Synchronisierungsaufwands führt. Kurz gesagt, im Fall eines einzelnen Threads besteht keine Notwendigkeit, verschiedene Sperren zu berücksichtigen, keine Sperrfreigabevorgänge und kein Leistungsverbrauch aufgrund möglicher Deadlocks.

2. Single-Threaded-Multiprozess-Clusterlösung

Die Funktion von Single-Thread ist tatsächlich sehr leistungsstark und die Effizienz jedes Kerns ist ebenfalls sehr hoch. Multithreading kann naturgemäß höhere Leistungsgrenzen haben als Singlethreading. Allerdings können in der heutigen Computerumgebung selbst die Multithreading-Einschränkungen einer einzelnen Maschine oft nicht erfüllt werden. Was einer weiteren Untersuchung bedarf, sind Multi-Server-Clustering-Szenarien, und Multithreading-Technologie ist in diesen Szenarien noch nicht verfügbar.

Daher ist ein Single-Thread-Cluster mit mehreren Prozessen eine gute Lösung.

Empfohlenes Tutorial: Java-Einstiegsprogramm

Das obige ist der detaillierte Inhalt vonWarum ist Redis Single-Threaded?. 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