GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Redis-Datentypen mit Befehlen:Umfassender Leitfaden

Einführung

Redis ist eine bemerkenswert schnelle, nicht relationale Datenbanklösung. Sein einfaches Schlüsselwert-Datenmodell ermöglicht es Redis, mit großen Datensätzen umzugehen und gleichzeitig beeindruckende Lese-/Schreibgeschwindigkeiten und Verfügbarkeit aufrechtzuerhalten.

Mit Redis können Sie verschiedene Datentypen wie Listen, Hashes, Sets und sortierte Sets verwenden, um Daten zu speichern und zu verwalten.

In diesem Tutorial erfahren Sie, wie Sie Datentypen redis arbeiten und grundlegende Befehle beherrschen für jeden Datentyp.

Redis-Datentypen

Eine Schlüssel-Wert-Datenbank strukturiert Daten, indem sie jedem Datenobjekt einen eindeutigen Schlüssel zuweist. Verwenden Sie den Schlüssel, um Werte zu verwalten und abzurufen, die diesem bestimmten Schlüssel zugewiesen sind. Jede binäre Sequenz mit einer Größe von bis zu 512 MB kann als Redis-Schlüssel verwendet und dann mit einfachen Zeichenfolgen oder anderen abstrakten Datenstrukturen verknüpft werden.

Redis-Schlüssel werden Werten zugeordnet, indem einer von sieben verschiedenen Datentypen verwendet wird:

  • Strings
  • Listen
  • Hashes
  • Sätze
  • Sortierte Sätze
  • HyperLogLogs
  • Bitmaps (BitStrings)

Jeder Redis-Datentyp hat seinen eigenen Satz von Befehlen für routinemäßige Zugriffsmuster, Transaktionsunterstützung und Massenvorgänge. Wenn Sie Redis nicht installiert haben, verwenden Sie unsere detaillierten Anleitungen, um Redis auf Ubuntu zu installieren oder Redis auf Docker bereitzustellen.

Strings

Eine Zeichenfolge stellt den kleinsten Wert dar, den Sie einem Schlüssel zuweisen können. Die maximal zulässige Größe eines Zeichenfolgenwerts beträgt 512 MB und enthält eine beliebige Folge von Zeichen. In Redis ist der Schlüsselteil des Schlüssel-Wert-Paares ebenfalls ein String.

Datenbanken, die diese Art von Datenstruktur verwenden, werden oft als String-to-String-Schlüsselwertspeicher bezeichnet.

Da sich alle Daten in einem einzigen Objekt befinden, sind Zeichenfolgenoperationen in Redis extrem schnell. Grundlegende Redis-Befehle wie SET , GET , und DEL ermöglichen es Ihnen, grundlegende Operationen mit dem Zeichenfolgenwert auszuführen.

  • SET key value – Legt den Wert für den angegebenen Schlüssel fest.
  • GET key – Ruft den Wert für den angegebenen Schlüssel ab.
  • DEL key – Löscht den Wert für den angegebenen Schlüssel.

Das folgende Beispiel zeigt, wie Sie diese einfachen Befehle innerhalb der redis-cli verwenden interaktive Hülle. Das SET Der Befehl fügt den Wert zum Schlüssel hinzu, während der Befehl GET Befehl ruft den Wert ab und zeigt ihn an. Wenn dem Schlüssel kein Wert zugeordnet ist, wird die GET Die Ausgabe des Befehls ist (nil) .

Wenn ein Wert vorhanden ist, die Ausgabe für DEL Der Befehl zeigt die Anzahl der gelöschten Elemente an. Das Hinzufügen neuer Schlüssel und Werte wirkt sich nicht auf die Datenbankleistung oder Verarbeitungsgeschwindigkeit aus.

Listen

Mit Redis können Sie einer Taste eine geordnete Folge von Zeichenfolgen zuordnen. Diese verknüpfte Liste von Zeichenfolgen lässt Sie eine Reihe von Operationen durchführen, wie zum Beispiel:

  • LPUSH – Verschiebt den Wert an das linke Ende der Liste.
  • RPUSH – Verschiebt den Wert an das Ende der Liste.
  • LRANGE – Ruft eine Reihe von Elementen ab.
  • LPOP/RPOP – Wird verwendet, um Elemente von beiden Seiten anzuzeigen und zu entfernen.
  • LINDEX – Erhalten Sie einen Wert von einer bestimmten Position innerhalb der Liste.

Beim Hinzufügen von Werten zu einer Liste mit LPUSH/RPUSH Befehlen liefert die Ausgabe die aktuelle Anzahl der Artikel. Sie können dann die gesamte Liste mit LRANGE abrufen Befehl mit 0 als Start und -1 bedeutet das letzte Indexelement.

Rufen Sie mithilfe von LINDEX einen bestimmten Wert aus der verknüpften Liste ab Befehle oder entfernen Sie Elemente mit LPOP/RPOP Befehl.

Das Hinzufügen von Werten zu einer verknüpften Liste ist ein effizienter Vorgang, der unabhängig von seiner Größe die Schreibgeschwindigkeit nicht beeinträchtigt. Das Lesen von Daten aus einer verknüpften Liste kann jedoch von der Anzahl der Zeichenfolgen auf der Wertseite des Schlüsselwertpaars abhängen.

Hashes

Ein Redis-Hash speichert eine ungeordnete Zuordnung von Schlüssel-Wert-Paaren. Ein Hash-Schlüssel ist einem Wert zugeordnet. Der Wert ist eine Redis-Zeichenfolge, die andere Schlüssel-Wert-Paare enthält. Sie können keine anderen komplexen Datenstrukturen wie Sets, Listen oder andere Hashes als Werte verwenden.

Mit einfachen Hash-Befehlen können Sie auf einzelne oder mehrere Felder unabhängig zugreifen und diese ändern.

  • HSET – Ordnen Sie einem Schlüssel innerhalb des Hashs einen Wert zu.
  • HGET – Ruft einzelne Werte ab, die einem Schlüssel innerhalb des Hashs zugeordnet sind.
  • HGETALL – Zeigt den gesamten Hash-Inhalt an.
  • HDEL – Entfernt ein vorhandenes Schlüssel-Wert-Paar aus einem Hash.

Jedes Mal, wenn ein Element mit dem HSET zum Hash hinzugefügt wird Befehl, ein Rückgabewert (integer) n informiert Sie, ob ein Eintrag bereits existiert und wie viele Instanzen es gibt. Dieselben Informationen werden bereitgestellt, wenn HDEL verwendet wird Befehl.

Sets

Ein Redis-Set ist eine ungeordnete Sammlung eindeutiger Zeichenfolgen. Da Sets nicht geordnet sind, können Sie keine Elemente vom Anfang oder Ende des Indexes entfernen, wie bei Listen. Die Zeichenfolgen sind jedoch eindeutig, und es besteht keine Möglichkeit, dass mehrere Instanzen desselben Elements in einem Satz vorkommen.

Verwenden Sie die folgenden Befehle um einzelne Elemente eines Satzes hinzuzufügen, zu entfernen, abzurufen und zu überprüfen:

  • SADD – Hinzufügen eines oder mehrerer Artikel zu einem Set.
  • SISMEMBER – Finden Sie heraus, ob ein Artikel Teil eines Sets ist.
  • SMEMBERS – Ruft alle Elemente aus einem Set ab.
  • SREM – Entfernt ein vorhandenes Element aus einem Set.

Das mehrfache Hinzufügen desselben Elements zu einem Set erzeugt immer eine einzige Kopie. Daher müssen Sie SMEMBERS nicht verwenden oder SISMEMBER Befehl, um festzustellen, ob ein Element bereits Mitglied einer Menge ist.

Verwenden Sie das SADD Befehl, um sicherzustellen, dass es keine doppelten Einträge innerhalb eines Satzes gibt.

Sortierte Sätze

Sortierte Mengen oder ZSET s sind einer der fortschrittlichsten Datentypen in Redis.

Der Wertteil eines sortierten Schlüssel-Wert-Paares besteht aus einem eindeutigen Zeichenfolgenelement (Schlüssel), das als Member bezeichnet wird , und ein Element (Wert) wird als Punktzahl bezeichnet . Sortierte Mengen ordnen jedes Element einem Fließkommawert zu (Ergebnis ) und verwenden Sie diesen Wert, um Elemente in einer bestimmten Reihenfolge zu sortieren.

Sie können auf Elemente in sortierten Sätzen nach Mitglied, sortierter Reihenfolge und nach Bewertungswerten zugreifen. Grundlegende Befehle ermöglichen es Ihnen, einzelne Werte abzurufen, hinzuzufügen, zu entfernen oder Elemente basierend auf Mitgliedswerten und Bewertungsbereichen abzurufen.

  • ZADD – Fügt ein Mitglied mit einer Punktzahl zum sortierten Satz hinzu.
  • ZRANGE – Ruft Elemente basierend auf ihrer Position in der sortierten Reihenfolge ab. Die withscores Option erzeugt die tatsächlichen Score-Werte.
  • ZRANGEBYSCORE – Ruft Elemente aus dem sortierten Satz basierend auf dem definierten Bewertungsbereich ab. Die withscores Option erzeugt die tatsächlichen Score-Werte.
  • ZREM Entfernt Elemente aus einem sortierten Satz.

Nur das Mitglied Der Wert des Mitglieds-Score-Paares wird als eindeutig behandelt. Wenn Sie zwei verschiedene Scores verknüpfen an dasselbe Mitglied Wert, ist nur die neueste Hinzufügung in der sortierten Menge vorhanden. Wenn zwei verschiedene Mitglieder dieselbe Punktzahl haben Redis ordnet die Werte alphanumerisch.

HyperLogLogs

HyperLogLogs stellen eine geschätzte Anzahl eindeutiger Elemente in einer Sammlung bereit. Im Gegensatz zu anderen Lösungen werden Elemente in einem HyperLogLogs nicht einzeln gezählt, da dies erfordern würde, vorherige Elemente zu verfolgen, um zu vermeiden, dass dasselbe Element zweimal gezählt wird. Eine solche Operation erfordert eine Speichermenge, die der Speichermenge entspricht, die zum Speichern der Daten verwendet wird.

Die HyperLogLog-Struktur verwendet einen viel effizienteren probabilistischen Algorithmus die die Größe eines Satzes schätzt, anstatt jedes Element zu zählen. Die Fehlerquote der Schätzung liegt unter 1 %.

Mit HyperLogLog-Befehlen können Sie Elemente hinzufügen, eine geschätzte Anzahl eindeutiger Elemente abrufen und eine Vereinigung mehrerer HyperLogLogs erstellen.

  • PFADD – Hinzufügen eines oder mehrerer Elemente zu einem HyperLogLog.
  • PFCOUNT – Abrufen einer geschätzten Anzahl eindeutiger Elemente aus einem einzelnen HyperLogLog.
  • PFMERGE – Führen Sie verschiedene HyperLogLogs zu einem einzigen HyperLogLog zusammen.

Die Genauigkeit der Ergebnisse kann je nach Größe der Sammlung variieren. Wenn Sie jedoch keine genaue Anzahl von Elementen benötigen, können Sie mit dieser probabilistischen Struktur nur einen Bruchteil des Speichers verwenden, den Sie sonst benötigen würden.

Bitmaps

Ein Redis-String ist eine binäre Sequenz mit einer maximalen Größe von 512 Megabyte. Mit Bitmaps können Sie Strings auf Bitebene bearbeiten, indem Sie die entsprechenden Befehle verwenden.

  • SETBIT – Das Bit wird basierend auf einem 0- oder 1-Wert definiert oder gelöscht.
  • GETBIT – Ruft den Bitwert für den durch einen Schlüssel angegebenen Zeichenfolgenwert ab.
  • BITOP – Bitweise Operationen zwischen Strings ausführen.
  • BITPOS – Suchen Sie das erste auf 1 oder 0 gesetzte Bit in einem String.
  • BITCOUNT – Zählen Sie die Anzahl der auf 1 gesetzten Bits in einem String.

Die Möglichkeit, Bits einer Zeichenfolge zu manipulieren, bietet außergewöhnliche Möglichkeiten zur Platzeinsparung. Es bietet auch die Möglichkeit, direkt auf die grundlegenden Elemente der Daten zuzugreifen und diese zu bearbeiten.


Ubuntu
  1. Apache Hadoop-Architektur erklärt (mit Diagrammen)

  2. Cassandra-Datentypen:Integriert, Sammlung und benutzerdefiniert

  3. Beginnend mit Vagrant auf Ubuntu 14.10 – Ein Leitfaden für Anfänger

  4. Verschlüsseln Sie Ihre Daten mit EncFS auf Ubuntu 15.10

  5. Ist dieser Studienführer in Bezug auf Befehle zum Bestimmen von Dateitypen falsch?

Linux-Befehle - Vollständiges Handbuch

Nmap-Befehle mit Beispielen

Eine Anleitung zur Installation von Ubuntu 15.04 mit Screenshots

Kopieren Sie Daten mit rsync auf Ubuntu

So richten Sie die Redis-Replikation (mit deaktiviertem Cluster-Modus) in CentOS 8 ein – Teil 1

Umfassender hPanel-Leitfaden