redis ist eine Nosql-Datenbank und ein Schlüsselwertspeichersystem. Obwohl Redis ein Schlüsselwertspeichersystem ist, unterstützt Redis viele Wertspeichertypen, z. B. Zeichenfolgen, verknüpfte Listen, Mengen, geordnete Mengen und Hashes.
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.
Redis ist vollständig Open Source und kostenlos, entspricht dem BSD-Protokoll und ist eine leistungsstarke Schlüsselwertdatenbank.
Redis unterstützt fünf Datentypen: String (String), Hash (Hash), Liste (Liste), Set (Satz) und Zset (sortierter Satz: geordneter Satz).
Redis weist im Vergleich zu anderen Schlüsselwert-Cache-Produkten die folgenden drei Merkmale auf:
Redis unterstützt die Datenpersistenz und kann Daten im Speicher auf der Festplatte speichern und beim Neustart zur Verwendung erneut laden.
Redis unterstützt nicht nur einfache Daten vom Typ Schlüsselwert, sondern bietet auch die Speicherung von Datenstrukturen wie Liste, Satz, Zset und Hash.
Redis unterstützt die Datensicherung, also die Datensicherung im Master-Slave-Modus.
Vorteile von Redis
Extrem hohe Leistung – Redis kann mit einer Geschwindigkeit von 110.000 Mal/s lesen und mit einer Geschwindigkeit von 81.000 Mal/s schreiben.
Umfangreiche Datentypen – Redis unterstützt Datentypoperationen vom Typ Strings, Listen, Hashes, Mengen und geordnete Mengen für binäre Fälle.
Atomar – Alle Redis-Operationen sind atomar, was bedeutet, dass sie entweder erfolgreich oder überhaupt nicht ausgeführt werden. Einzelne Operationen sind atomar. Mehrere Operationen unterstützen auch Transaktionen, d. h. Atomizität, die durch die Anweisungen MULTI und EXEC umschlossen werden.
Umfangreiche Funktionen – Redis unterstützt auch Publish/Subscribe, Benachrichtigungen, Schlüsselablauf und andere Funktionen.
Was ist der Unterschied zwischen Redis und anderen Key-Value-Stores?
Redis verfügt über komplexere Datenstrukturen und bietet atomare Operationen für diese. Dies ist ein evolutionärer Weg, der sich von anderen Datenbanken unterscheidet. Die Datentypen von Redis basieren auf grundlegenden Datenstrukturen und sind für Programmierer transparent, ohne dass zusätzliche Abstraktionen erforderlich sind.
Redis läuft im Speicher, kann aber auf der Festplatte gespeichert werden. Daher muss der Speicher abgewogen werden, wenn verschiedene Datensätze mit hoher Geschwindigkeit gelesen und geschrieben werden, da die Datenmenge nicht größer als der Hardwarespeicher sein darf. Ein weiterer Vorteil von In-Memory-Datenbanken besteht darin, dass der Betrieb im Speicher im Vergleich zu denselben komplexen Datenstrukturen auf der Festplatte sehr einfach ist, sodass Redis viele Dinge mit hoher interner Komplexität erledigen kann. Außerdem sind sie im Hinblick auf das Festplattenformat kompakt und werden durch Anhängen generiert, da sie keinen Direktzugriff erfordern.
Warum also eine Nosql-Datenbank wie Redis verwenden?
1. Wenn die Gesamtgröße der Daten nicht in den Speicher einer Maschine passt;
3. Besuchsvolumen (Lesen und Schreiben gemischt), wenn eine Instanz nicht passt.
Im Standalone-Zeitalter wird nur ein Computer zur Installation von MySQL zur Speicherung verwendet. Wenn jedes Mal Tausende von Daten gespeichert werden, führt dies zu einer schlechten Leistung von MySQL, einer langsamen Speicher- und Lesegeschwindigkeit. und dann wird es sich zur Cache + MySQL + vertikalen Split-Methode entwickeln.
Cache speichert als Zwischen-Cache-Ära zuerst alle Daten im Cache und speichert sie dann in MySQL, wodurch der Datenbankdruck verringert und die Effizienz verbessert wird.
Wenn die Daten jedoch wieder auf eine andere Größenordnung ansteigen, kann die obige Methode den Bedarf nicht decken. Da der Schreibdruck der Datenbank zunimmt, kann der Cache nur den Lesedruck der Datenbank verringern. Die Konzentration des Lesens und Schreibens auf eine Datenbank führt dazu, dass die Datenbank überlastet wird. Die meisten Websites haben damit begonnen, die Master-Slave-Replikationstechnologie zu verwenden, um eine Trennung von Lesen und Schreiben zu erreichen und die Lese- und Schreibleistung sowie die Skalierbarkeit der Lesedatenbank zu verbessern. Der Master-Slave-Modus von MySQL ist derzeit zum Standard für Websites geworden.
Im Zeitalter des Master-Slave-Trennmodus, basierend auf Redis-Cache, MySQL-Master-Slave-Replikation und Lese-/Schreib-Trennung, kam es aufgrund des Schreibdrucks der MySQL-Hauptdatenbank zu Engpässen und der Datenmenge MyISAM verwendet weiterhin Tabellensperren, und bei hoher Parallelität treten schwerwiegende Sperrprobleme auf. Eine große Anzahl von MySQL-Anwendungen mit hoher Parallelität begann, die InnoDB-Engine anstelle von MyISAM zu verwenden. Vorteile der Nosql-Datenbank:
1. Einfach zu erweitern
Diese Arten der Datenspeicherung erfordern keine festen Muster und können ohne redundante Vorgänge horizontal erweitert werden. Im Vergleich zu relationalen Datenbanken kann die Anzahl der Tabellen und Felder reduziert werden. Es bietet auch skalierbare Funktionen auf Architekturebene
2. Großes Datenvolumen verbessert die Leistung
Vielfältige und flexible Datenmodelle
Das obige ist der detaillierte Inhalt vonWarum sollten Webprojekte Redis einführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!