Dieser Artikel stellt hauptsächlich vor, wie man den Redis-Cache von Grund auf neu startet. Er hat einen gewissen Referenzwert. Jetzt kann ich ihn mit allen teilen, die ihn brauchen.
Redis ist eine Open-Source-Sprache, die ANSI CSpracheSchreiben und unterstützen Sie Netzwerk, Protokolltyp, SchlüsselwertDatenbank , die speicherbasiert oder dauerhaft sein kann und mehrere Sprachen bietet API. Ab 2010Jahr3Monat15Tag, Die Entwicklung von Redis wird von VMware gehostet. Ab 2013 Jahr 5 Monat wurde Redis von entwickelt PivotalGesponsert.
redis ist ein SchlüsselwertSpeichersystem . Ähnlich wie Memcached unterstützt es relativ mehr gespeicherte Werttypen, einschließlich string( String), list(List), set(set), zset(sorted set --ordered set ) und Hash (Hash-Typ). Diese Datentypen unterstützen alle Push/Pop, Hinzufügen/Entfernen und Abrufen Schnitt-, Vereinigungs- und Differenzoperationen sowie umfangreichere Operationen, und diese Operationen sind alle atomar. Auf dieser Basis unterstützt redis verschiedene Sortiermethoden. Wie bei memcached werden Daten zur Gewährleistung der Effizienz im Speicher zwischengespeichert. 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 Basis Master-Slave(Master-Slave) Synchronisation.
Redis ist eine leistungsstarke Schlüssel-Wert--Datenbank. Das Aufkommen von Redis hat memcachedwie Schlüssel/WertUnzureichend weitgehend kompensiert In manchen -Situationen kann die Speicherung eine sehr gute ergänzende Rolle zur relationalen Datenbank spielen. Es bietet Java, C/C++, C#, PHP, JavaScript, Perl, Object-C , Python, Ruby, Erlang und andere Kunden, Very einfach zu bedienen. [1]
Redis unterstützt 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 Veröffentlichungs-/-Abonnementmechanismus vollständig implementiert ist, kann die Slave-Datenbank, wenn sie den Baum irgendwo synchronisiert, einen Kanal abonnieren und den vollständigen Nachrichtenveröffentlichungsdatensatz des Master-Servers empfangen. Die Synchronisierung ist hilfreich für die Skalierbarkeit und Datenredundanz von Lesevorgängen. Die offizielle Website-Adresse von
redis ist sehr leicht zu merken, sie lautet redis.io. (Ich habe speziell nachgesehen und festgestellt, dass das Domainnamensuffix io zum nationalen Domainnamen gehört, der Britisches Territorium im Indischen Ozean ist. das heißt, das Britische Territorium im Indischen Ozean)
Derzeit finanziert Vmware die Entwicklung und Wartung des redis Projekt.
Entpacken Sie die Installationsdatei
Nach dem Entpacken
Make zum Kompilieren ausführen
Kompilieren OK,
Geben Sie das src-Verzeichnis ein
Redis-cli-Terminalbetrieb
Redis-Serverdatei zum Starten des Redis-Dienstes
Redis-Benchmark-Druck Testdatei
Redis-check-xx Autoinspektion-Sicherungsdateiskript
Erstellen Sie das Redis-Laufverzeichnis und kopieren Sie die beiden Laufdateien dorthin
Kopieren Sie die Konfigurationsdatei in die Vergangenheit
Erfolgszeichen beim Starten des Redis-Dienst am Frontend
./redis-server
Zu diesem Zeitpunkt liegt ein Problem vor. Der aktuell gestartete Dienst kann nicht ausgeschaltet werden, daher muss er geändert werden.
Beenden Sie den Dienst. Strg+z
Stoppen Sie zuerst den Redis-Dienst
Verwenden Sie den Hintergrund, um den Redis-Dienst zu starten
vim redis.conf
Ändern Sie es auf „Ja“ und speichern Sie es. Legen Sie den Hintergrund fest, um Redis zu starten
Starten Sie es erneut
Ich habe festgestellt, dass die Vorderseite Ende noch gestartet
beim Start Starten Sie die Konfigurationsdatei gemeinsam
Überprüfen Sie den Redis-Prozess
Es wurde festgestellt, dass Redis gestartet wurde
Drei Variablen werden festgelegt und diese drei Variablen werden im Speicher gespeichert
Wie liest man?
Holen Sie sich!
In Redis können zusätzlich „n“ und Leerzeichen nicht verwendet werden Neben dem Komponenteninhalt können auch andere Inhalte als Namensteil des Schlüssels verwendet werden. Es besteht keine Anforderung an die Namenslänge
Mit anderen Worten, es handelt sich um den Variablennamen
Code
|
Funktion |
||||||||||||||||||||||||||
Exists-Schlüssel |
Exists | ||||||||||||||||||||||||||
Entf key1 key2 …. | Löschen Sie den angegebenen Schlüssel | ||||||||||||||||||||||||||
Gibt den Werttyp des angegebenen Schlüssels zurück | Schlüsselmuster
|
Gibt alle Schlüssel zurück, die dem angegebenen Muster entsprechen | |||||||||||||||||||||||||
Alten Schlüssel in neuen Schlüssel umbenennen | Umbenennen | ||||||||||||||||||||||||||
Dbsize | Gibt die Anzahl der Schlüssel in der aktuellen Datenbank zurück | ||||||||||||||||||||||||||
Ablaufzeit für Schlüssel angeben | tr>|||||||||||||||||||||||||||
Ttl-Taste | Gibt die Ablaufsekunden des Schlüssels zurück | ||||||||||||||||||||||||||
Datenbankindex auswählen | Datenbank auswählen | tr>||||||||||||||||||||||||||
Schlüssel db-index verschieben | Schlüssel von der aktuellen Datenbank in die angegebene Datenbank verschieben | ||||||||||||||||||||||||||
Flushdb | Alle Schlüssel in der aktuellen Datenbank löschen | ||||||||||||||||||||||||||
Flushall | Alle Schlüssel in allen Datenbanken löschen td> |
Code
Funktion
Der Listentyp ist eigentlich eine doppelt verknüpfte Liste
Wenn Sie möchten Um die Top 10 der neuesten Benutzer abzufragen, müssen
einzeln überprüft werden, was zu viele Ressourcen verbraucht.
Beispiel für eine Listenkettentabelle:
über die Liste Die verknüpfte Liste speichert die Informationen der letzten 5 Benutzer, die sich im System angemeldet haben
Neue Benutzer kommen hinzu und alte Benutzer werden rausgeschmissen
code
|
Funktion |
||||||||||||||||||||
Lpush-Tastenzeichenfolge |
Fügen Sie am Kopf der Liste ein Zeichenfolgenelement hinzu, das dem Schlüssel entspricht td> |
||||||||||||||||||||
Rpop-Taste |
Elemente entfernen aus das Ende der Liste und gibt das gelöschte Element zurück |
||||||||||||||||||||
|
entspricht der Länge der Liste. Wenn der Schlüsselwert nicht vorhanden ist, 0 wird zurückgegeben. Wenn der entsprechende Typ des Schlüssels keine Liste ist, wird ein Fehler zurückgegeben | ||||||||||||||||||||
Rpush Schlüsselzeichenfolge | Wie oben, fügen Sie | ||||||||||||||||||||
Lpop-Taste | Löschen das Element aus dem Kopf der Liste und geben Sie das gelöschte Element zurück | ||||||||||||||||||||
Ltrim key start end | Fangen Sie die Liste ab und halten Sie die Elemente im angegebenen Bereich |
Code |
Funktion |
Fügen Sie ein Schlüsselelement hinzu | Fügen Sie ein String-Element zur Set-Sammlung hinzu, das dem Schlüssel entspricht, und geben Sie Erfolg 1 zurück |
Srem-Schlüsselmitglied | Entsprechend aus Schlüsselsatz Entfernen Das angegebene Element von gibt erfolgreich 1 |
Smove p1 p2 member | Entfernen Sie das Mitglied aus dem entsprechenden Satz von p1 und fügen Sie es dem entsprechenden Satz von p2 hinzu |
Scard-Schlüssel | Gibt die Anzahl der Elemente im Satz zurück |
Sismember-Schlüsselmitglied | Bestimmen Sie, ob ein Mitglied im Satz vorhanden ist |
Sinter key1 key2.. . . | Gibt den Schnittpunkt aller angegebenen Schlüssel zurück |
Sunion key1 key2 | Gibt die Vereinigung aller angegebenen Schlüssel zurück |
Sdiff key1 key2.. | Den Differenzsatz aller angegebenen Schlüssel zurückgeben |
Smembers-Schlüssel | Gibt alle Schlüssel zurück, die dem entsprechen Set-Elemente, das Ergebnis ist ungeordnet |
Es gibt einen Schlüssel mit fünf Elementen darin
Dann füge einen Linken hinzu
Die Elemente im Satz können der Reihe nach über den Gewichtungswert abgerufen werdenFall:Verwenden Sie den Sortiersatz, um die 5 beliebtesten Beiträge zum Lernen zu erhalten
Jedes Element in der sortierten Menge ist eine Kombination aus Wert und Gewicht
Code |
Funktion |
||||||||||||||||||||
Elemente zur Sammlung hinzufügen und die entsprechende Bewertung aktualisieren, wenn das Element in der Sammlung vorhanden ist | |||||||||||||||||||||
Zrem-Schlüsselmitglied strong>
|
Das angegebene Element löschen, 1 erfolgreich, 0 existiert nicht | ||||||||||||||||||||
Zincrby key incr member | Erhöhen Sie den Score-Wert des entsprechenden Mitglieds entsprechend dem Incr-Bereich und geben Sie den Score-Wert zurück | ||||||||||||||||||||
Zrank-Schlüsselmitglied | Gibt die Rangfolge (Index) des angegebenen Elements in der Menge zurück. Die Elemente in Der Satz ist von klein nach groß nach Punktzahl sortiert | ||||||||||||||||||||
Zrange-Tastenanfang end | Ähnlich wie bei der Irange-Operation werden die Elemente im angegebenen Bereich aus der Menge zurückgegeben. und die bestellten Ergebnisse werden zurückgegeben | ||||||||||||||||||||
Zrevrange key start end | Wie oben, die Rückgabe erfolgt in umgekehrter Reihenfolge tr>|||||||||||||||||||||
Zcard-Schlüssel | Gibt die Anzahl der Elemente in der Sammlung zurück | ||||||||||||||||||||
Zscore-Schlüsselelement strong> | Gibt die Punktzahl zurück, die dem angegebenen Element entspricht | ||||||||||||||||||||
Zremrangebyrank key min max | Elemente in der Sammlung löschen, die im angegebenen Punktintervall geordnet sind |
Speichern (Snapshot) einer Tastenänderung in 900 Sekunden
Zehn Tastenänderungen in 300 Sekunden (Snapshot) Speichern
Zehntausend Schlüsseländerungen in einer Minute (Snapshot) Speichern
Die Vorteile einer solchen Kontrolle:
Die Häufigkeit der Datenänderung ist sehr hoch und die Häufigkeit der Sicherung ist ebenfalls hoch,
Die Häufigkeit der Datenänderung ist gering und die Häufigkeit der Sicherung ist ebenfalls gering.
Der Name der Snapshot-Persistenz
Snapshot-Persistenz manuell initiieren
Wenn für diese Maschine:
Essenz: Sichern Sie jeden vom Benutzer ausgeführten „Schreib“-Befehl (Hinzufügen, Löschen, Ändern) in einer Datei und führen Sie beim Wiederherstellen den spezifischen „Schreib“-Befehl aus.
Durch Aktivieren der AOF-Persistenz wird das Innere von Redis gelöscht Daten
AOF-Persistenz aktivieren
Die Konfigurationsdatei wird geändert und der Dienst neu gestartet
Redis anzeigen-Prozess : Ps – A |. grep redis
-9 Force-Kill-Prozess
Neuen Prozess starten
Aof fügt dauerhafte Sicherungshäufigkeit hinzu
Immer Erzwingt das Schreiben auf die Festplatte sofort nach dem Empfang eines Schreibbefehls.
Everysec erzwingt das Schreiben auf die Festplatte einmal pro Sekunde , empfohlen
Nein, ist für die beste Leistung vollständig auf das Betriebssystem angewiesen, Persistenz ist nicht garantiert
Um die Belastung jedes Redis-Servers zu reduzieren, Sie können mehrere festlegen und im Master-Slave-Modus
Ein Server lädt „schreibt“
Andere Server lädt „liest“
Der Master-Server synchronisiert sich automatisch mit dem Slave Server
IP-Adresse und Portnummer ändern
Das obige ist der detaillierte Inhalt vonBeginnen Sie mit dem Redis-Cache von Grund auf. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!