Heim  >  Artikel  >  Datenbank  >  Ist Redis Thread-sicher?

Ist Redis Thread-sicher?

(*-*)浩
(*-*)浩Original
2019-06-18 10:46:327371Durchsuche

Redis ist Single-Threaded:

Single-Threaded bedeutet, dass das Netzwerkanforderungsmodul einen Thread verwendet (es besteht also keine Notwendigkeit, die Sicherheit der Parallelität zu berücksichtigen), also einen Thread verarbeitet alle Netzwerkanfragen. Andere Module verwenden weiterhin mehrere Threads.

Ist Redis Thread-sicher?

Thread-Sicherheit (empfohlenes Lernen: Redis-Video-Tutorial)

Redis übernimmt tatsächlich das Konzept des Thread-Schließens und schließt Aufgaben in einem Thread, was natürlich Probleme mit der Thread-Sicherheit vermeidet. Für zusammengesetzte Vorgänge, die auf mehreren Redis-Vorgängen basieren, sind jedoch weiterhin Sperren erforderlich, und diese können im Sperrstil verteilt werden.

Die Gründe, warum Redis schnell ausgeführt werden kann:

(1) Die überwiegende Mehrheit der Anfragen sind reine Speicheroperationen (sehr schnell)
(2 ) Verwendet einen einzelnen Thread, um unnötige Kontextwechsel und Race-Bedingungen zu vermeiden
(3) Nicht blockierendes IO – IO-Multiplexing (Was bedeutet IO-Multiplexing?)

IO-Multiplexing Es gibt drei Möglichkeiten zur Wiederverwendung: Auswählen , poll und epoll. Es ist zu beachten, dass Select und Poll Thread-unsicher sind, während Epoll Thread-sicher ist.

Die interne Implementierung von Redis verwendet Epoll und verwendet Epoll +, ein einfaches, von ihm selbst implementiertes Ereignis-Framework. Lesen, Schreiben, Schließen und Verbinden in Epoll werden alle in Ereignisse umgewandelt und dann die Multiplex-Funktion von Epoll verwendet, um keine Zeit mit io zu verschwenden. Diese drei Bedingungen sind nicht unabhängig voneinander, insbesondere die erste, wenn die Anforderung vorliegt Alle sind zeitaufwändig und der Durchsatz und die Leistung eines einzelnen Threads sind vorstellbar. Es sollte gesagt werden, dass Redis die geeignete technische Lösung für spezielle Szenarien ausgewählt hat.

Welche Vorteile bietet die Verwendung von Redis?

Es ist schnell, weil die Daten im Speicher gespeichert werden, ähnlich wie bei HashMap. Der Vorteil von HashMap besteht darin, dass die zeitliche Komplexität von Suche und Betrieb O(1) ist

Umfangreiche Unterstützung Der Datentyp unterstützt String, Liste, Satz, sortierter Satz, Hash

und unterstützt Transaktionen. Alle Operationen sind atomar. Dies bedeutet, dass alle Änderungen an den Daten entweder ausgeführt werden oder überhaupt nicht ausgeführt

Umfangreiche Funktionen: Kann zum Caching, Versenden von Nachrichten und zum Festlegen der Ablaufzeit per Schlüssel verwendet werden, wird nach Ablauf automatisch gelöscht

Für weitere Redis Verwandte technische Artikel finden Sie in der Spalte „Einführungs-Tutorial zur Verwendung der Redis-Datenbank“ in der Spalte „Einführung“!

Das obige ist der detaillierte Inhalt vonIst Redis Thread-sicher?. 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