2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Eine relationale Datenbank ist eine strukturierte Datenbank, die auf einer relationalen Modelldatenbank basiert und datensatzorientiert erstellt wird.
Gängige relationale Datenbanken: Oracle, MySQL, SQL Server, Microsoft Access, DB2.
NOSQL=Not Only SQL ist der allgemeine Begriff für nicht relationale Datenbanken. Abhängig von der Speichermethode, der Speicherstruktur und den Verwendungsszenarien spricht man von einer nicht relationalen Datenbank. Andere Datenbanken als die gängigen relationalen Datenbanken können als nicht relationale Datenbanken bezeichnet werden.
Gängige nicht relationale Datenbanken: Redis, MongoDB, Hbase, CouhDB.
Redis ist eine in der Sprache C geschriebene Open-Source-Nosql-Datenbank. Sie wird speicherbasiert ausgeführt und unterstützt die Speicherform Schlüssel-Wert-Paar. Seine Portnummer ist 6379.
1. Installieren Sie Redis
[root@localhost ~]# systemctl stoppe Firewall
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum -y installiere gcc* zlib-devel
[root@localhost ~]tar xvzf redis-4.0.9.tar.gz
[root@localhost ~]cd redis-4.0.9/
[root@localhost redis-4.0.9]# machen
Beachten:
Nach dem Erstellen wird eine Fehlermeldung generiert.
Lösung:
Lösung 1: Verwenden Sie make MALLOC=libc, um den Speicherzuweiser anzugeben, der für libc kompiliert werden soll
Lösung 2: make clean && make distclean
[root@localhost redis-4.0.9]# make PREFIX=/usr/local/redis installieren
[root@localhost-Dienstprogramme]# ln -s /usr/local/redis/bin/* /usr/local/bin/
[root@localhost redis-4.0.9]# cd utils/
Darunter: install_server.sh ist das Initialisierungsskript
[root@localhost-Dienstprogramme]# ./install_server.sh
Bitte wählen Sie den ausführbaren Pfad für Redis [] /usr/local/redis/bin/redis-server(ausführbaren Pfad angeben)
Prozess- und Servicekontrolle anzeigen
[root@localhost-Dienstprogramme]# netstat -anpt | grep redis
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 5360/Redis-Server 1
[root@localhost utils]# /etc/init.d/redis_6379 stoppen(Redis ist geschlossen)
[root@localhost utils]# /etc/init.d/redis_6379 starten(An)
[root@localhost-Dienstprogramme]# /etc/init.d/redis_6379 status (Zustand)
Änderung von Konfigurationsparametern
[root@localhost ~]#vim /etc/redis/6379.conf
binden 127.0.0.1 192.168.10.101//Hostadresse abhören
Port 6379 //Hafen
dämonisieren ja //Daemon-Prozess aktivieren
pid-Datei /var/run/redis_6379.pid //PID-Datei angeben
Loglevel-Hinweis//Protokollebene
Protokolldatei /var/log/redis_6379.log//Protokolldatei angeben
[root@localhost~]#/etc/init.d/redis_6379 Neustart
2. Redis-Befehlstool
[root@localhost-Dienstprogramme]# redis-cli(Lokale Anmeldung)
[root@localhost-Dienstprogramme]# redis-cli -h 192.168.10.101 -p 6379(Fernanmeldung)
192.168.10.101:6379> Klingeln(Der Erkennungsdienst läuft normal)
PONG
3: Redis-Benchmark-Testtool
redis-benchmark ist das offizielle Redis-Leistungstesttool, mit dem die Leistung von Redis-Diensten effektiv getestet werden kann.
(1) Leistung der Testanforderung
[root@localhost ~]#redis-benchmark -h 192.168.10.101 -p 6379 -c 100 -n 100000
Anmerkung:
-h: Geben Sie den Hostnamen des Servers an.
-p: Geben Sie den Server-Port an.
-c: Geben Sie die Anzahl gleichzeitiger Verbindungen an.
-n: Geben Sie die Anzahl der Anfragen an.
(2) Testen Sie die Zugriffsleistung
[root@localhost ~]#redis-benchmark -h 192.168.10.101 -p 6379 -q -d 100
Anmerkung:
-h: Geben Sie den Hostnamen des Servers an.
-p: Geben Sie den Server-Port an.
-d: Geben Sie die Datengröße des SET/GET-Werts in Bytes an;
-q: Beenden von Redis erzwingen. Es werden nur Abfrage-/Sek.-Werte angezeigt.
Set speichert den Schlüsselwert des Datenbefehlsformats
get Datenbefehlsformat abrufen Schlüssel abrufen
1. Schlüssel-Wert-Paare hinzufügen
127.0.0.1:6379> Satz 1 1
OK
127.0.0.1:6379> Satz 2 2
OK
127.0.0.1:6379> Satz 3 3
OK
2. Alle Werte in der Datenbank anzeigen
127.0.0.1:6379> Schlüssel *
1) "3"
2) "1"
3) "2"
3. Zeigen Sie Daten an, die mit v beginnen, in der Datenbank
127.0.0.1:6379>SCHLÜSSEL v*
4. Zeigen Sie alle Daten in der Datenbank an, die mit v beginnen
127.0.0.1:6379>SCHLÜSSEL v?
5.Sehen Sie sich die aktuelle Datenbank an mit gegen AnfangDas Folgende enthält beliebige zweistellige Daten
127.0.0.1:6379>SCHLÜSSEL v??
Stellen Sie fest, ob der Wert vorhanden ist.
127.0.0.1:6379>existiert f5Bestimmen Sie, ob f5 existiert
(Ganzzahl) 1 Das Ergebnis ist 1, was darauf hinweist, dass die Taste F5 vorhanden ist
wie
(Ganzzahl) 0 Das Ergebnis ist 0, was darauf hinweist, dass die Taste F5 nicht vorhanden ist
del Der Befehl kann das angegebene löschen Schlüssel
127.0.0.1:6379> del v5 Löschen Sie v5 in der Datenbank
(Ganzzahl) 1
127.0.0.1:6379>Holen Sie sich v5
(Null)
verwenden Typ Der Befehl kann abgerufen werden Schlüssel dazugehörigen Wert Werttyp
127.0.0.1:6379>Typ K1
Schnur
Anmerkung:
Von Redis unterstützte Datentypen
umbenennen Der Befehl gilt für eine vorhandene Schlüssel umbenennen
Im tatsächlichen Gebrauch wird die Verwendung empfohlen existiert Befehl zum Anzeigen des Ziels Schlüssel existiert, und entscheiden Sie dann, ob es ausgeführt werden soll umbenennen Befehl, um das Überschreiben wichtiger Daten zu vermeiden.
127.0.0.1:6379>umbenennen v22 v2 Benennen Sie v22 in v2 um
OK
umbenennen Die Funktion des Befehls besteht darin, das Vorhandene zu ändern Schlüssel Führen Sie eine Umbenennung durch und prüfen Sie, ob der neue Name existiert.
verwendenumbenennen Wenn der Befehl umbenannt wird, wenn das Ziel Schlüssel Wenn es existiert, wird es nicht umbenannt.
Datenbankgröße Der Zweck des Befehls besteht darin, die aktuelle Datenbank anzuzeigen Schlüssel Anzahl.
127.0.0.1:6379> Datenbankgröße
(Ganzzahl) 5
Redis Standardmäßig ohne Änderungen enthalten 16 Datenbank, der Datenbankname ist eine Zahl 0-15 der Reihe nach benannt werden
(1)Wechseln Sie zur Seriennummer 10 Datenbank
127.0.0.1:6379>Wählen Sie 10
OK
(2)Wechseln Sie zur Seriennummer 15 Datenbank
127.0.0.1:6379[10]>Wählen Sie 15
OK
(3)Wechseln Sie zur Seriennummer 0 Datenbank
127.0.0.1:6379[15]>Wählen Sie 0
127.0.0.1:6379>Satz K1 100 Erstellen Sie k1 in Datenbank 0
OK
127.0.0.1:6379>Holen Sie sich k1
"100"
127.0.0.1:6379>Zug k1 1 //K1 in Datenbank 0 in Datenbank 1 verschieben
(Ganzzahl) 1
127.0.0.1:6379>Wählen Sie 1 //Wechseln Sie zur Zieldatenbank 1
OK
127.0.0.1:6379[1]>Holen Sie sich k1 //Verschobene Daten anzeigen
"100"
127.0.0.1:6379[1]> Wählen Sie 0
OK
127.0.0.1:6379> Holen Sie sich k1 //Der Wert von k1 kann in Datenbank 0 nicht angezeigt werden
(Null)
Um die aktuellen Datenbankdaten zu löschen, verwenden Sie FLUSHDB
Befehlsimplementierung; alle Datenbankdaten löschen, verwenden FLUSHALL Befehlsimplementierung.
Redis Alle Daten werden im Speicher gespeichert und dann von Zeit zu Zeit asynchron auf der Festplatte gespeichert.(Das nennt man“Semi-persistenter Modus”); Sie können jede Datenänderung auch in eine schreiben nur Datei anhängen (aof)In(Das nennt man“Vollständiger Persistenzmodus”)。
Weil Redis Alle Daten werden im Speicher gespeichert. Wenn die Persistenz nicht konfiguriert ist,Redis Nach dem Neustart gehen alle Daten verloren.Daher ist eine Aktivierung erforderlichRedis Die Persistenzfunktion speichert Daten auf der Festplatte Redis Nach einem Neustart können Daten von der Festplatte wiederhergestellt werden.Redis Für die Persistenz stehen zwei Methoden zur Verfügung, eine davon RDB(Redis-Datenbank) Beharrlichkeit (das Prinzip ist ReidsZeitgesteuerter Dump von In-Memory-Datenbankdatensätzen (entsorgen)auf die Festplatte RDB Beharrlichkeit), das andere ist AOF(nur anhängen Datei)Beharrlichkeit (das Prinzip ist Reids Das Betriebsprotokoll wird als Anhang in die Datei geschrieben.
Der Unterschied zwischen RDB und AOF
ROB schreibt den Daten-Snapshot innerhalb des angegebenen Zeitintervalls. Es handelt sich um einen Unterprozess von fork. Er schreibt die Daten zunächst in einen temporären Ordner und speichert sie mit binärer Komprimierung.
AOF zeichnet jeden Schreib- und Löschvorgang des Servers in Protokollform auf. Abfragevorgänge werden nicht aufgezeichnet, sondern in Textform.
Vor- und Nachteile von RDB und AOF
RDB-Vorteile:
RDB ist eine kompakte, komprimierte Binärdatei, die eine Momentaufnahme der Redis-Daten zu einem bestimmten Zeitpunkt darstellt. Es eignet sich sehr gut für Backups, vollständige Kopien und andere Szenarien. Führen Sie beispielsweise alle 6 Stunden ein bgsave-Backup durch und kopieren Sie die RDB-Datei zur Notfallwiederherstellung auf den Remote-Computer oder das Dateisystem.
Die Datenwiederherstellung erfolgt schnell.
Maximieren Sie die Leistung
Hohe Starteffizienz
RDBMangel:
Daten, die vor dem Herunterfahren nicht gespeichert wurden, gehen verloren.
RDB wird durch den untergeordneten Fork-Prozess abgeschlossen und verbraucht Ressourcen.
AOF-Vorteile:
Die Haltbarkeit der Daten ist hoch
Im Anhängemodus wird der Inhalt der Protokolldatei auch bei einer Ausfallzeit nicht zerstört.
Zum Schutz der Datensicherheit kann der Rewrite-Mechanismus gestartet werden.
AOF-Nachteile:
Die Geschwindigkeit der AOF-Datenwiederherstellung ist langsam
Die Effizienz des AOF-Betriebs ist gering
Kriterien für die Wahl zwischen den beiden:
Opfern Sie etwas Leistung im Austausch für eine höhere Cache-Konsistenz (AOF),
Bei häufigen Schreibvorgängen sollten Sie die Sicherung nicht im Austausch für eine höhere Leistung aktivieren und auf den manuellen Vorgang warten. speichern Wenn, erstellen Sie erneut ein Backup (RDB)
Anmerkung:
Wenn Redies nach dem Neustart eine Persistenzdatei laden muss,PrioritätAOF-Dateien werden ausgewählt.
Wenn RDB zuerst und dann AOF aktiviert wird und RDB zuerst beibehalten wird, werden die Inhalte in der RDB-Datei von AOF überschrieben.
[root@localhost ~]# vim /etc/redis/6379.conf
Offen 6379.conf Suchen Sie nach der Datei speichern, können Sie die Konfigurationsinformationen wie unten gezeigt sehen.
existieren Redis Die Konfigurationsdatei enthält drei Synchronisierungsmethoden:
Immer: Synchrone Persistenz. Jedes Mal, wenn sich Daten ändern, werden sie sofort auf die Festplatte geschrieben ##702 Zeile
everysec: Standardmäßig empfohlen, jede Sekunde asynchron aufzeichnen (Standardwert)
nein: Keine Synchronisierung, es bleibt dem Betriebssystem überlassen, zu entscheiden, wie synchronisiert wird
Ignorieren Sie die letzte möglicherweise problematische Anweisung
[root@localhost ~]#/etc/init.d/redis_6379 Neustart
192.168.9.236:7001> Infospeicher
verwendeter_Speicher:1210776 Größe des verwendeten Speichers in Bytes
verwendeter_menschlicher_Speicher: 1,15 MAngezeigt mit Einheiten, in M
verwendeter_Speicher_RSS:7802880Wie viel Speicher belegt Redis aus Sicht des Betriebssystems?
verwendeter_Speicher_RSS_Human: 7,44 MAnzeige mit Einheiten
maximaler Speicher: 1073741824Maximale Speichergröße
maxmemory_human:1.00G Anzeige mit Einheiten
MaxMemory-Richtlinie: Recyclingstrategie
flüchtig-lru: es erlaubt Redis Wählen Sie aus dem gesamten Datensatz den zuletzt verwendeten aus Schlüssel Löschen
flüchtig-ttl:Eliminieren Sie entsprechend der Ablaufzeit des Schlüssels
flüchtig-zufällig: Wählen Sie nach dem Zufallsprinzip Daten zur Eliminierung aus der Datensammlung mit festgelegter Ablaufzeit aus;
allkeys-lru:verwenden LRU Algorithmen eliminieren Daten aus allen Datensätzen;
alle Tasten - zufällig: Daten zur Eliminierung aus der Datensammlung zufällig auswählen;
keine Räumung: Löschung von Daten deaktivieren (Standardwert)
Legen Sie die Ablaufzeit des Schlüssels fest
127.0.0.1:6379>ablaufen v1 10 v1 hat eine Ablaufzeit von 10 Sekunden
Anmerkung:
Wann Redis Aufgrund von Speichermangel muss eines zurückgefordert werden Schlüssel Stunde,Redis Die erste Überlegung besteht darin, nicht die ältesten Daten zu recyceln, sondern die am längsten verwendeten Daten. Schlüssel oder bald ablaufen Schlüssel Wählen Sie zufällig eines aus Schlüssel, aus dem Datensatz entfernt