Redis Grundlagen und Datentypen

Was ist Redis?

  • Redis (Remote Dictionary Server): Remote-Wörterbuchdienst
  • Es handelt sich um eine Open-Source-Datenbank mit Protokollschlüssel und Schlüsselwerten, die in C-Sprache geschrieben ist, das Netzwerk unterstützt, auf Speicher basiert und beibehalten werden kann und APIs in mehreren Sprachen bereitstellt
  • Eine der derzeit beliebtesten NoSQL-Technologien, auch als strukturierte Datenbank bekannt

Was kann Redis tun?

  • Speicher und Persistenz (Speicher geht verloren, wenn die Stromversorgung ausgeschaltet ist, daher ist Persistenz sehr wichtig)
  • Hohe Effizienz, kann für den Cache verwendet werden
  • System veröffentlichen und abonnieren
  • Analyse der Karteninformationen
  • Timer, Zähler, Seitenaufrufe

Eigenschaften von Redis

  • Verschiedene Datentypen
  • Kann hartnäckig sein
  • Transaktionsfunktion
  • Kann Cluster machen

Unter Windows installieren

  1. herunterladen
  2. Entpacken Sie in Ihr eigenes Umgebungsverzeichnis
  3. Führen Sie es im Umgebungsverzeichnis aus: redis-server.exe redis.windows.conf
  4. Geben Sie redis-cli.exe ein, geben Sie ping ein und testen Sie die Verbindung

Installieren Sie unter Linux

  1. Laden Sie das komprimierte Paket herunter: wget http://download.redis.io/releases/redis-5.0.8.tar.gz
  2. Entpacken Sie in den opt-Pfad: tar -zxvf redis-5.0.8.tar.gz
  3. Installiere gcc: yum installiere gcc-c ++
  4. cd /redis-5.0.8 -> make
  5. make install
  6. Linux wird standardmäßig in / usr / local / bin installiert

Redis Konfiguration unter Linux

  1. Erstellen Sie ein Verzeichnis zum Speichern Ihrer eigenen Konfigurationsdateien unter / usr / local / bin: mkdir myconfig
  2. Kopieren Sie die Redis-Konfigurationsdatei: cp /opt/redis-5.0.8/redis.conf myconfig
  3. Datei monize keine Änderung monize ja , also nach Taiwan Weg zu starten

Starten Sie Redis unter Linux

  • Führen Sie unter / usr / local / bin: redis-server myconfig / redis.conf aus. Starten Sie Redis
  • Führen Sie unter / usr / local / bin: redis-cli -h host -p port -a Passwort aus, um den Redis-Client einzugeben
  • Der Client führt das Herunterfahren aus und beendet dann Redis und beendet den Client

Redis Benchmark

Offizielles Leistungstest-Tool

  • Test: 100 gleichzeitige Verbindungen 100000 Anforderungen

    Ausführen unter / usr / local / bin: redis-Benchmark -h localhost -p 6379 -c 100 -n 100000

Redis grundlegende Befehle

Die folgenden Befehle werden unter dem Redis-Client ausgeführt

  • Redis hat standardmäßig 16 Datenbanken, Nummer 0-15, und Nummer 0 wird standardmäßig verwendet

    Befehl n auswählen (3 auswählen): Datenbank wechseln

  • Befehl dbsize: Zeigt die aktuelle Datenbankgröße an

  • Schlüssel * Befehl: Alle Schlüssel der aktuellen Datenbank anzeigen

  • set key_name key_value: Fügt der aktuellen Datenbank einen Schlüssel hinzu

  • Befehl flushdb: Löscht die aktuelle Datenbank

  • Flushall: Leert alle Datenbanken

  • existiert Schlüsselname: Wenn der Schlüssel existiert, geben Sie 1 zurück, andernfalls geben Sie 0 zurück

  • mave key_name: Entfernen Sie den Zielschlüssel

  • expire key_name num (arabische Ziffern): Legen Sie die Ablaufzeit für den Zielschlüssel fest

  • ttl key_name: Zeigt die verbleibende Zeit des Zielschlüssels an

  • Typ Schlüsselname: Zeigen Sie den Typ des Zielschlüssels an

Redis-Datentyp

Fünf grundlegende Datentypen

  • String

    Verwendungsszenario : Der Wert des Zeichenfolgentyps kann zusätzlich zu einer Zeichenfolge eine Zahl sein. Er kann verwendet werden, um Zähler zu implementieren, die Anzahl der Einheiten, den Objektcache und den Webseitencache zu zählen

    Häufig verwendete Befehle:

    • Wert des Schlüsselnamens anhängen: Inhalt an den Zielschlüssel anhängen. Wenn der Schlüssel nicht vorhanden ist, entspricht dies dem Hinzufügen eines Schlüssels
    • strlen key_name: Zeigt die Länge des Werts an, der dem Zielschlüssel entspricht
    • incr key_name: Zielschlüsselwert +1, der zum Realisieren von Echtzeitdaten der Website verwendet werden kann, z. B. zum Lesen des Volumens (wenn der Schlüsselwert eine Zahl ist, wird er vom Redis-Hintergrund vor dem Betrieb automatisch in Integer konvertiert).
    • decr Schlüsselname: Zielschlüsselwert -1
    • incrby / decrby key_name num (arabische Ziffern): Erhöht / verringert den angegebenen Wert
    • getrange key_name num1 num2: Liefert den String-Bereich
    • setrange key_name num xx: Ändert den Zeichenfolgenwert von num auf xx
    • mset k1 v1 k2 v2 k3 v3: mehrere Schlüssel gleichzeitig einstellen
    • mget k1 k2 k3: Erhalte mehrere Werte gleichzeitig
      • Mset und mget sind atomare Operationen, die entweder alle erfolgreich sind oder fehlschlagen
    • setex key_name num key_value: Erstellen Sie den Zielschlüssel und legen Sie die Ablaufzeit fest
    • setnx key_name key_value: Wenn dieser Schlüssel nicht vorhanden ist, erstellen Sie den Zielschlüssel
    • set user: 1 {name: waston, age: 3}: setze einen user: 1 Objektwert als json string
    • set item: {id}: value: wie set book: 3: views, die Anzahl der Seitenaufrufe von Book 3
    • getet key_name value: Holen Sie sich zuerst den Zielschlüssel und setzen Sie dann den Wert auf den Zielschlüssel
    • lset list_name index value: setze einen Wert in den angegebenen Index der Zielliste, die Liste und der Index müssen existieren!
  • Liste

    In Redis ist die zugrunde liegende Datenstruktur der Liste eine verknüpfte Liste, die als Stapel-, Warteschlangen- oder Blockierungswarteschlange verwendet werden kann

    ** Verwendungsszenario: ** Nachrichtenwarteschlange

    Häufig verwendete Befehle:

    Listenname wird weiterhin als Schlüssel in Redis gespeichert

    • lpush list_name value: Fügen Sie links (Kopf) der Zielliste einen Wert hinzu
    • rpush list_name value: Wert rechts (Ende) der Zielliste hinzufügen
    • lrange list_name num1 num2: Anzeigen der Werte in der Zielliste; lrange list_name 0 -1: Alle anzeigen
    • lpop list_name: In der Zielliste wird links ein Wert angezeigt (Kopf)
    • rpop list_name: In der Zielliste wird rechts ein Wert angezeigt (tail)
    • lindex list_name num (ab 0): Ruft den Wert num + 1 links von der Zielliste ab
    • llen list_name: Liefert die Länge der Liste
    • lrem list_name value: Alle Werte in der Zielliste entfernen
    • lrem list_name num value: Entfernen Sie die num-Werte von links nach rechts aus der Zielliste
    • ltrim list_name num1 num2: Fängt die Zielliste ab und behält den Wert von num1 bis num2 bei
    • rpoplpush a_list b_list: Fügen Sie einen Wert von der rechten Seite von a_list ein und fügen Sie ihn in b_list ein
    • linsert Listenname vor / nach Wert1 Wert2: Fügen Sie Wert2 links / rechts von Wert1 in der Zielliste hinzu
  • einstellen

    Werte in Set können nicht wiederholt werden

    ** Anwendungsszenario: ** Anzeige allgemeiner Attribute wie gemeinsames Anliegen und gemeinsame Hobbys unter Benutzern, empfohlen von Freunden

    Häufig verwendete Befehle:

    • sadd set_name value: Fügt der Zielmenge ein Element hinzu
    • smembers set_name: Zeigen Sie die Elemente in der Zielgruppe an
    • sismember set_name value: Bestimmen Sie, ob der Wert in der Zielgruppe enthalten ist (1: existiert 0: existiert nicht)
    • scard set_name: Die Anzahl der Elemente in der Zielgruppe
    • srem set_name value: Entfernen Sie das Wertelement in der Zielgruppe
    • srandmember set_name (num): Nehmen Sie zufällig ein (num) Element aus dem Zielsatz heraus
    • spop set_name: Populär ein Element aus der Zielmenge entfernen
    • smove set1 set2 value: Verschiebe den Wert in set1 nach set2
    • sdiff set1 set2: Elemente in set1 zurückgeben, aber nicht in set2
    • sinter set1 set2: Gibt die Elemente zurück, die set1 und set2 gemeinsam gehören
    • sunion set1 set2: gibt alle Elemente in set1 und set2 zurück, es wird nur eines desselben Elements zurückgegeben
  • Hash

    Kartensammlung, Schlüsselzuordnung; das Wesentliche unterscheidet sich nicht wesentlich vom Zeichenfolgentyp. Der Wert in der Zeichenfolge wird zum Schlüsselwert

    Hash ist besser für die Objektspeicherung geeignet, String ist besser für die allgemeine Speicherung von Zeichenfolgen geeignet

    ** Szenario verwenden: ** Verwenden Sie einen Hash, um eine Reihe von Informationen eines Benutzers zu speichern

    Häufig verwendete Befehle:

    • hset Hashname Schlüsselname Wert: Erstellen Sie einen Hash
    • hget hash_name key_name: Liefert den Wert, der dem Zielschlüssel im Ziel-Hash entspricht
    • hmset hash_name k1 v1 k2 v2: Mehrere Werte erstellen
    • hmget hash_name k1 k2: Mehrere Werte abrufen
    • hdel hash_name key_name: löscht den Zielschlüssel und den entsprechenden Wert im Ziel-Hash
    • hlen hash_name: Zeigt an, wie viele Schlüssel sich im Ziel-Hash befinden
    • hexisten hash_name schlüsselname: Bestimmen Sie, ob der Zielschlüssel im Ziel-Hash vorhanden ist
    • hkeys hash_name: Zeigt alle Schlüssel im Ziel-Hash an
    • hvals hash_name: Zeigt alle Werte im Ziel-Hash an
    • hincrby hash_name key_name 1 / -1: Machen Sie den Wert des Zielschlüssels +1 oder -1
    • hsetnx hash_name key_name value: Erstellt, wenn der Zielschlüssel nicht vorhanden ist
  • Zset

    Bestelltes Set

    Zum Sortieren wird dem Satz ein Wert hinzugefügt

    ** Anwendungsszenario: ** Bestenliste, Datengewichtung

    Häufig verwendete Befehle:

    • zadd set_name score value: Erstellen Sie ein Ziel-zset und fügen Sie eine Wertbewertung hinzu
    • zadd set_name n1 v1 n2 v2: mehrere erstellen, zB: zadd gehalt 100 sam 200 kim
    • zrangebyscore set_name -inf + inf: Ziel-Zset wird in aufsteigender Reihenfolge entsprechend der Punktzahl ausgegeben. Der Bereich ist -inf bis + inf, was bedeutet, dass positive oder negative Unendlichkeit der gesamte Bereich ist
    • zrevrange set_name + inf -inf: Ausgabe in absteigender Reihenfolge
    • zrangebyscore set_name -inf + inf withscores: sortiere die Ausgabe nach Punktzahl
    • zrem set_name value: Entfernen Sie das angegebene Element im Ziel-zset
    • zcard set_name: Liefert die Anzahl der Elemente in zset
    • zcount set_name num1 num2: Liefert die Anzahl der Elemente zwischen num1 und num2

Drei spezielle Typen

  • geospatial

    Geografische Lage, die unterste Ebene wird von zset implementiert

    ** Anwendungsszenario: ** Standort, Personen in der Nähe, Entfernungsberechnung

    Häufig verwendete Befehle:

    1. Geografischen Standort hinzufügen: geoadd Schlüsselname Längengrad (Längengrad) Breitengrad (Breitengrad) Ortsname (z. B. geoadd China: Stadt 116,40 39,90 Peking)

      Laden Sie im Allgemeinen geografische Stadtdaten herunter und importieren Sie sie auf einmal mit dem Java-Programm

    2. Abrufen der Breiten- und Längengrade des unteren Zielpunkts: Geopos Schlüsselname Ortsname1 Ortsname2 (einer oder mehrere)

    3. Geben Sie den Abstand zwischen zwei Orten zurück: Geodist Schlüsselname Ort1 Ort2 Einheit

      Einheit ist die Einheit, es kann km m mi ft sein

    4. Suchen Sie mit dem angegebenen Breiten- und Längengrad als Mittelpunkt die Elemente innerhalb eines bestimmten Radius: georadius key_name Längengrad (mittlerer Längengrad) Breitengrad (mittlerer Breitengrad) Radius (Radius) Einheit (Einheit) xxx (zusätzliche Parameter)

      Der zusätzliche Parameter wird zurückgezogen, der geradlinige Abstand wird zum Ergebnis hinzugefügt, bei Übereinstimmung werden der Breiten- und Längengrad hinzugefügt, die Anzahl der Ergebnisse ist begrenzt

    5. Die Abfrage konzentriert sich auf den angegebenen Speicherort und die Elemente innerhalb des angegebenen Bereichs: georadiusbymember Schlüsselname Ortsname Radiuseinheit

    6. Geben Sie den Breiten- und Längengrad des angegebenen Ortes im Zeichenfolgenformat zurück: geohash china: city place_name

    7. Zielort entfernen: zrem Schlüsselname Ortsname

    8. Alle zset-bezogenen Befehle können direkt verwendet werden ...

  • Hyperloglog

    Eine Datenstruktur für die Kardinalstatistik

    Kardinalität , dh die Anzahl der verbleibenden Elemente in einem Array nach dem Entfernen doppelter Elemente, z. B. {1,3,5,5,7} nach der Deduplizierung {1,3,5,7}, beträgt die Basis 4

    ** Anwendungsszenario: ** Zeichnen Sie die UV-Strahlung der Webseite auf (eine Person besucht sie mehrmals, drücken Sie einmal) und zählen Sie die Statistiken

    Häufig verwendete Befehle:

    1. Erstellen Sie ein Hyperloglog: pfadd Schlüsselname Wert1 Wert2…
    2. Zeigen Sie die Anzahl der Elemente im angegebenen Hyperloglog an: pfcount key_name
    3. Hyperloglog (Union) zusammenführen: pfmerge key_name key1 key2
  • Bitmap

    Bitmap kann als Array betrachtet werden

    ** Anwendungsszenario: ** Es gibt nur zwei Statistiken, 0 bedeutet eine Situation, 1 bedeutet eine andere Situation. Wie zum Beispiel: Anmelden, einchecken

    Häufig verwendete Befehle:

    1. Legen Sie den Wert im Ziel-Bitmap-Zielindex fest: setbit map_name index 0/1
    2. Ruft den Wert des Ziel-Bitmap-Zielindex ab: getbit map_name index
    3. Zählen Sie die Anzahl der Elemente mit dem Wert 1 in der Zielbitmap: bitcount map_name

Ich denke du magst

Origin blog.csdn.net/WuLex/article/details/113531711
Empfohlen
Rangfolge