Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 15771|Antwort: 0

[Redis] 5 Dinge, die Sie wissen sollten, bevor Sie Redis verwenden

[Link kopieren]
Veröffentlicht am 29.12.2015 12:22:28 | | |
Anwendungen mit Redis zu entwickeln ist ein angenehmer Prozess, aber wie bei jeder Technologie gibt es einige Dinge, die Sie bei der Entwicklung von Redis-basierten Anwendungen beachten sollten. Sie waren vielleicht schon mit der gesamten Routine der relationalen Datenbankentwicklung vertraut, und die auf Redis basierende Anwendungsentwicklung weist viele Gemeinsamkeiten auf, aber Sie müssen die folgenden zwei Dinge bedenken – Redis ist eine In-Memory-Datenbank und sie ist singlethreaded. Daher sollten Sie bei der Nutzung von Redis auf folgende Punkte achten:
1. Kontrolliere alle in Redis gespeicherten Schlüssel
Die Hauptfunktion einer Datenbank ist es, Daten zu speichern, aber es ist normal, dass Entwickler einige in der Datenbank gespeicherte Daten aufgrund von Änderungen in Anwendungsanforderungen oder Datennutzungsmethoden ignorieren, und das Gleiche gilt für Redis. Du übersiehst vielleicht bestimmte Schlüssel, die ablaufen, oder du vergisst die Daten, weil ein Modul deiner Anwendung veraltet ist.
In jedem Fall speichert Redis einige Daten, die nicht mehr verwendet werden, und nimmt grundlos etwas Speicherplatz ein. Das schwach strukturierte Datenmuster von Redis macht es schwierig herauszufinden, was zentral gespeichert ist, es sei denn, man verwendet eine sehr ausgereifte Nomenklatur für Schlüssel. Die richtige Benennungsmethode vereinfacht das Datenbankmanagement, und wenn Sie einen Namensraum für Schlüssel über Ihre Anwendung oder Ihren Dienst erstellen (meist mit Doppelpunkten zur Trennung von Schlüsselnamen), können Sie Daten beim Migrieren, Konvertieren oder Löschen leicht identifizieren.
Ein weiterer häufiger Anwendungsfall für Redis ist der zweite Datenspeicher für heiße Datenelemente, wobei der Großteil der Daten in anderen Datenbanken wie PostgreSQL oder MongoDB gespeichert wird. In diesen Anwendungsfällen vergessen Entwickler oft, die entsprechenden Daten in Redis zu löschen, wenn Daten aus dem Primärspeicher entfernt werden. In diesem Fall ist in der Regel eine Kaskadenlöschung erforderlich, wobei dies erreicht werden kann, indem alle Identifikatoren für ein bestimmtes Datenelement in der Redis-Konfiguration gespeichert werden, um sicherzustellen, dass nach der Löschung der Daten in der Primärdatenbank ein Cleaner aufgerufen wird, um alle relevanten Kopien und Informationen zu löschen.
2. Kontrolle der Länge aller Schlüsselnamen
Wie oben erwähnt, haben wir passende Namenskonventionen verwendet und Präfixe hinzugefügt, um zu bestimmen, wohin die Daten gehen, sodass das dem entgegensteht. Vergiss jedoch nicht, dass Redis eine In-Memory-Datenbank ist und je kürzer die Schlüssel, desto weniger Speicherplatz brauchst du. Natürlich hat die Länge des Schlüsselnamens einen großen Einfluss, wenn es Millionen oder Milliarden von Schlüsseln in einer Datenbank gibt.
Zum Beispiel verbraucht auf einem 32-Bit-Redis-Server, wenn man eine Million Schlüssel mit einer Länge von 32 Zeichen speichert, etwa 96 MB Speicherplatz, wenn man einen 6-Zeichen-Schlüsselnamen verwendet, aber bei Verwendung eines 12-Zeichen-Schlüsselnamens erhöht sich der Speicherplatz auf etwa 111 MB. Mit mehr Schlüsseln haben die zusätzlichen 15 % Overhead einen erheblichen Einfluss.
3. Verwenden Sie die richtige Datenstruktur
Ob es um den Speicherverbrauch oder die Leistung geht – manchmal können Datenstrukturen einen großen Einfluss haben – hier sind einige Best Practices, auf die Sie sich beziehen sollten:
Anstatt Daten als Tausende (oder Millionen) separater Strings zu speichern, sollten Sie die Verwendung von gehashten Datenstrukturen zur Gruppierung verwandter Daten in Betracht ziehen. Hashtabellen sind sehr effizient und können den Speicherverbrauch reduzieren; Gleichzeitig ist Hashing auch für die Detailabstraktion und die Lesbarkeit des Codes vorteilhafter.
Wenn es angebracht ist, verwenden Sie Liste statt Set. Wenn du die Set-Funktion nicht nutzen musst, kann List schnellere Geschwindigkeiten als Set bieten und dabei weniger Speicher verbrauchen.
Sortierte Sets sind die teuersten Datenstrukturen, sowohl hinsichtlich des Speicherverbrauchs als auch der Komplexität grundlegender Operationen. Wenn Sie nur eine Möglichkeit brauchen, Datensätze abzufragen und sich nicht darum kümmern, solche Eigenschaften zu sortieren, wird dringend empfohlen, Hashtabellen zu verwenden.
Eine oft übersehene Funktion in Redis sind Bitmaps oder Bitsets (nach V2.2). Bitsets erlauben es, mehrere Bit-Operationen auf Redis-Werten durchzuführen, wie zum Beispiel eine leichte Analyse.
4. Verwenden Sie den Schlüssel nicht bei der Verwendung von SCAN
Seit Redis v2.8 ist bereits der SCAN-Befehl verfügbar, der es ermöglicht, Schlüssel aus dem Schlüsselraum mit dem Cursor abzurufen. Im Vergleich zum KEYS-Befehl kann SCAN zwar nicht alle übereinstimmenden Ergebnisse gleichzeitig zurückgeben, vermeidet aber das hohe Risiko, das System zu blockieren, sodass einige Operationen am Master-Knoten ausgeführt werden können.
Es ist wichtig zu beachten, dass der SCAN-Befehl ein cursorbasierter Iterator ist. Jedes Mal, wenn der SCAN-Befehl aufgerufen wird, wird dem Benutzer ein neuer Cursor zurückgegeben, und der Benutzer muss diesen neuen Cursor als Cursorparameter des SCAN-Befehls in der nächsten Iteration verwenden, um den vorherigen Iterationsprozess fortzusetzen. Gleichzeitig können Nutzer mit SCAN auch Befehle im Tastennamens- und Zählmodus anpassen.
SCAN-bezogene Befehle umfassen auch SSCAN-Befehle, HSCAN-Befehle und ZSCAN-Befehle, die jeweils für Sammlungen, Hash-Schlüssel und Nachfolger verwendet werden.
5. Verwenden Sie serverseitige Lua-Skripte
Im Prozess der Nutzung von Redis bietet die Unterstützung von Lua-Skripten den Entwicklern zweifellos eine sehr freundliche Entwicklungsumgebung und befreit so die Kreativität der Nutzer erheblich. Bei korrekter Anwendung können Lua-Skripte erhebliche Leistungsverbesserungen und Ressourcenverbrauch bringen. Anstatt Daten an die CPU zu übergeben, ermöglichen Skripte die Ausführung der Logik, die den Daten am nächsten ist, was die Netzwerklatenz und den redundanten Datentransfer reduziert.
In Redis ist ein sehr klassischer Anwendungsfall für Lua das Datenfiltern oder das Aggregieren von Daten in eine Anwendung. Indem Sie den Verarbeitungsablauf in ein Skript kapseln, können Sie ihn einfach aufrufen, um eine kleinere Antwort mit wenigen Ressourcen in weniger Zeit zu erhalten.
Profi-Tipp:Lua ist großartig, hat aber auch einige Probleme, wie Schwierigkeiten beim Melden und Beheben von Fehlern. Ein kluger Ansatz ist es, die Pub/Sub-Funktion von Redis zu nutzen und das Skript Log-Nachrichten über einen dedizierten Kanal senden zu lassen. Erstellen Sie dann einen Abonnentenprozess und bearbeiten Sie ihn entsprechend.





Vorhergehend:Redis. .NET Open-Source-Komponente Beetle.Redis
Nächster:Install-Package: Das Microsoft.Bcl 1.1.10-Paket benötigt den NuGet-Client Version 2.8.1 oder höher...
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com