Vor- und Nachteile der Redis-Datenbank:
(Lernvideo-Empfehlung: Redis-Video-Tutorial)
1. Welche Vorteile bietet die Verwendung von Redis?
(1) Es ist schnell, da die Daten im Speicher gespeichert werden. Es ähnelt HashMap. Der Vorteil von HashMap besteht darin, dass die Zeitkomplexität der Suche und des Betriebs O(1) ist.
(2) Es unterstützt umfangreiche Daten Typen, einschließlich String und Liste. Menge, sortierte Menge, Hash
(3) Unterstützte Transaktionen und Operationen sind alle atomar. Die sogenannte Atomizität bedeutet, dass alle Änderungen an den Daten entweder ausgeführt werden oder überhaupt nicht ausgeführt werden
(4 ) Umfangreiche Funktionen: Kann zum Zwischenspeichern verwendet werden. Legen Sie für Nachrichten die Ablaufzeit per Schlüssel fest und sie werden nach Ablauf automatisch gelöscht
2 Was sind die Vorteile von Redis im Vergleich zu Memcached?
(1) Alle Werte in Memcached sind einfache Zeichenfolgen. Als Ersatz unterstützt Redis umfangreichere Datentypen
(2) Redis ist viel schneller als Memcached
(3) Redis kann dauerhaft sein . Häufige Redis-Leistungsprobleme und Lösungen:
(1) Der Master führt am besten keine Persistenzarbeiten wie RDB-Speicher-Snapshots und AOF-Protokolldateien durch.
(2) Wenn die Daten wichtig sind, aktivieren Sie eine bestimmte AOF-Sicherungsdatei auf jedem Slave und stellen Sie die Richtlinie so ein, dass sie einmal pro Sekunde synchronisiert wird
(3) Für die Geschwindigkeit der Master-Slave-Replikation und die Stabilität der Verbindung ist es am besten, wenn sich Master und Slave im selben LAN befinden
( 4) Vermeiden Sie Druck. Fügen Sie Slave-Bibliotheken zu einer großen Master-Bibliothek hinzu.
(5) Verwenden Sie keine Diagrammstruktur für die Master-Slave-Replikation. Es ist stabiler, eine einseitig verknüpfte Listenstruktur zu verwenden, das heißt: Master <- Slave1 <- Slave2 <- Slave3…
Diese Struktur erleichtert die Lösung des Single-Point-of-Failure-Problems und die Realisierung des Ersatzes des Masters durch den Slave. Wenn der Master auflegt, können Sie Slave1 sofort als Master aktivieren und alles andere unverändert lassen.
4. Es gibt 20 Millionen Daten in MySQL, aber nur 200.000 Daten werden in Redis gespeichert Bei einer bestimmten Größe werden die Daten einer Eliminierungsstrategie unterzogen. Redis bietet 6 Dateneliminierungsstrategien:
voltile-lru: Wählen Sie die zuletzt verwendeten Daten aus dem Datensatz (server.db[i].expires) mit einer festgelegten Ablaufzeit aus, um sie zu eliminieren.
1). Speichermethode
Memcache speichert alle Daten im Speicher. Nach einem Stromausfall bleiben die Daten hängen.
Redis wird teilweise auf der Festplatte gespeichert, was die Datenpersistenz gewährleistet.
1. Redis unterstützt nicht nur einfache Daten vom Typ k/v, sondern bietet auch die Speicherung von Datenstrukturen wie Liste, Satz, Zset und Hash.
2. Redis unterstützt die Datensicherung, also die Datensicherung im Master-Slave-Modus.
3. Redis unterstützt Datenpersistenz, wodurch Daten im Speicher auf der Festplatte verbleiben und bei einem Neustart erneut geladen werden können.
(1), Sitzungscache
Eines der am häufigsten verwendeten Szenarien für die Verwendung von Redis ist der Sitzungscache. Der Vorteil der Verwendung von Redis zum Zwischenspeichern von Sitzungen gegenüber anderem Speicher (z. B. Memcached) besteht darin, dass Redis Persistenz bietet. Bei der Verwaltung eines Caches, der nicht unbedingt Konsistenz erfordert, wären die meisten Menschen unzufrieden, wenn alle Warenkorbinformationen des Benutzers verloren gehen würden. Wäre das dann immer noch der Fall?
Da sich Redis im Laufe der Jahre verbessert hat, ist es glücklicherweise leicht herauszufinden, wie man Redis richtig zum Zwischenspeichern von Sitzungsdokumenten verwendet. Auch die bekannte kommerzielle Plattform Magento stellt Redis-Plug-ins zur Verfügung.
(2), Full Page Cache (FPC)
Zusätzlich zu den grundlegenden Sitzungstoken bietet Redis auch eine sehr einfache FPC-Plattform. Zurück zum Konsistenzproblem: Selbst wenn die Redis-Instanz neu gestartet wird, werden Benutzer aufgrund der Festplattenpersistenz keine Verringerung der Seitenladegeschwindigkeit feststellen. Dies ist eine große Verbesserung, ähnlich wie bei PHP Local FPC.
Nehmen wir noch einmal Magento als Beispiel: Magento bietet ein Plugin zur Verwendung von Redis als Full-Page-Cache-Backend.
Darüber hinaus verfügt Pantheon für WordPress-Benutzer über ein sehr gutes Plug-in wp-redis, mit dem Sie die von Ihnen durchsuchten Seiten so schnell wie möglich laden können.
(3) Warteschlange
Einer der großen Vorteile von Redis im Bereich der Speicher-Engines besteht darin, dass es Listen- und Set-Operationen bereitstellt, wodurch Redis als gute Plattform für Nachrichtenwarteschlangen verwendet werden kann. Die von Redis als Warteschlange verwendeten Vorgänge ähneln den Push/Pop-Vorgängen der Liste in lokalen Programmiersprachen (wie Python).
Wenn Sie in Google schnell nach „Redis-Warteschlangen“ suchen, werden Sie sofort auf eine große Anzahl von Open-Source-Projekten stoßen. Der Zweck dieser Projekte besteht darin, mit Redis sehr gute Back-End-Tools zu erstellen, um verschiedene Warteschlangenanforderungen zu erfüllen. Celery verfügt beispielsweise über ein Backend, das Redis als Broker verwendet. Sie können es hier anzeigen.
(4), Leaderboard/Counter
Redis implementiert den Vorgang des Erhöhens oder Verringerns von Zahlen im Speicher sehr gut. Sets und sortierte Sets machen es uns auch sehr einfach, diese Operationen durchzuführen. Redis stellt lediglich diese beiden Datenstrukturen bereit. Wir möchten also die Top 10 Benutzer aus der sortierten Menge erhalten – nennen wir sie „user_scores“, wir müssen es nur wie folgt tun:
Dies setzt natürlich voraus, dass Sie anhand Ihrer Benutzer-Scores sortiert sind aufsteigende Reihenfolge. Wenn Sie den Benutzer und die Punktzahl des Benutzers zurückgeben möchten, müssen Sie dies wie folgt ausführen:
ZRANGE user_scores 0 10 WITHSCORES
Agora Games ist ein gutes Beispiel, das in Ruby implementiert ist und dessen Rankings Redis zum Speichern von Daten verwenden kann es hier sehen.
(5), Veröffentlichen/Abonnieren
Last (aber sicherlich nicht zuletzt) ist die Veröffentlichungs-/Abonnieren-Funktion von Redis. Es gibt tatsächlich viele Anwendungsfälle für Publish/Subscribe. Ich habe gesehen, wie Leute es in sozialen Netzwerkverbindungen, als Auslöser für Veröffentlichungs-/Abonnement-basierte Skripte und sogar zum Aufbau von Chat-Systemen mithilfe der Veröffentlichungs-/Abonnement-Funktionalität von Redis verwenden! (Nein, das stimmt, Sie können es nachschauen).
Von allen von Redis bereitgestellten Funktionen ist diese meiner Meinung nach diejenige, die den Leuten am wenigsten gefällt, obwohl sie den Benutzern mehrere Funktionen bietet.
Verwandte Empfehlungen: Redis-Datenbank-Tutorial
Das obige ist der detaillierte Inhalt vonWas sind die Vor- und Nachteile von Redis und welche Einsatzszenarien gibt es?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!