Heim  >  Artikel  >  PHP-Framework  >  Verstehen Sie den Kerndatentyp von Redis

Verstehen Sie den Kerndatentyp von Redis

coldplay.xixi
coldplay.xixinach vorne
2020-07-03 17:20:102721Durchsuche

Gewöhnliche Zeichenfolgen in Redis verwenden die Rohcodierung, die ursprüngliche Codierungsmethode. Diese Codierungsmethode erweitert und weist im Voraus redundanten Speicherplatz zu, um den Overhead durch häufige Speicherzuweisung zu reduzieren. Verstehen Sie den Kerndatentyp von Redis

Wenn die Zeichenfolgenlänge weniger als 1 MB beträgt, wird sie mit der doppelten erforderlichen Länge zugewiesen. Wenn sie 1 MB überschreitet, wird ihr jedes Mal eine zusätzliche Kapazität von 1 MB zugewiesen. Die Zahlen in

werden ebenfalls als Zeichenfolgentypen gespeichert, die Kodierungsmethode unterscheidet sich jedoch von gewöhnlichen Zeichenfolgen. Die Zahlen verwenden die

Ganzzahlkodierung

und der Zeichenfolgeninhalt wird direkt auf festgelegt tringGanzzahlwert. Binäre Bytefolge string .

Beim Speichern gewöhnlicher Zeichenfolgen, serialisierter Objekte, Zähler und anderer Szenarien können Sie den Redis-String-Typ verwenden. Zu den Anweisungen, die dem String-Datentyp entsprechen, gehören set, get, mset, incr, decr usw. .

ListenlisteRedisListe ist eine schnelle doppelt verknüpfte Liste, die eine Reihe von Zeichenfolgenwerten

Bei herkömmlichen Pop- und Push-Elementen ist die Leistung sehr hoch und die Zeitkomplexität beträgt O(1), da die Liste direkt angehängt oder gepoppt wird. Für zufälliges Einfügen, zufälliges Löschen und zufällige Bereichserfassung muss die Position jedoch durch Abfragen der Liste bestimmt werden, und die Leistung ist relativ gering.

Beim Bearbeiten der Liste können Sie lpush, lpop, rpush, rpop und lrange verwenden, um reguläre Warteschlangenein- und -austritts- und Bereichserfassungsvorgänge durchzuführen. In einigen speziellen Szenarien können Sie auch lset und linsert zum Ausführen verwenden Verwenden Sie zufällige Einfügevorgänge, um den Löschvorgang für angegebene Elemente auszuführen. Wenn Sie die Nachrichtenliste verbrauchen, können Sie auch Blpop und Brpop zum Blockieren der Erfassung verwenden, sodass Sie ruhig auf die Liste warten können Einfügen neuer Elemente ohne zusätzliche kontinuierliche Abfrage.

set set

list set ist eine ungeordnete Sammlung vom Typ String. Die Elemente im Set sind eindeutig, das heißt, es gibt keine doppelten Elemente im Set. Sammlungen in Redis werden im Allgemeinen über Dikt-Hash-Tabellen implementiert, sodass Einfüge-, Lösch- und Abfrageelemente direkt basierend auf dem Element-Hash-Wert lokalisiert werden können und die Zeitkomplexität O (1) beträgt. Die

-Operation

-Anweisung bestimmt, ob in der festgelegten Datenstruktur ein Element vorhanden ist, das dem Schlüssel entspricht, und gibt 1 zurück, wenn es existiert. Andernfalls geben Sie die Anweisung 0 zurück, um den Differenzsatz für mehrere Mengensammlungen auszuführen Differenzsatz für mehrere Sätze ausführen. Schnittpunkt ausführen.

Befehl führt Vereinigung für mehrere Sätze durch zufälliges Element;

    -Direktive gibt ein oder mehrere zufällige Elemente zurück.
  • sismember

    Im sozialen System kann es verwendet werden, um die
  • Freundesliste
  • , der Sie folgen, zu speichern, um festzustellen, ob Sie aufmerksam sind, und es kann auch verwendet werden um

    Freundesempfehlungensdiff zu machen. Darüber hinaus können Sie die Einzigartigkeit von Set auch nutzen, um genaue Statistiken über das Quellgeschäft und die Quell-IP des Dienstes zu erstellen.

  • sortierter Satz Sortierter Satz sinter

    In einem sortierten Satz ist jedem Element ein doppelter Bewertungswert zugeordnet. Die sortierte Menge wird nach diesem Bewertungswert von klein nach groß sortiert. In einer geordneten Menge dürfen Elemente nicht wiederholt werden, Score-Werte dürfen jedoch wiederholt werden.
  • Bedienungsunion

  • spop Anleitung: Bringen Sie die Elemente im bestellten Set in die richtige Reihenfolge

  • srandmember Befehl: Ermitteln Sie den Bewertungswert des Elements.

Befehl: Geben Sie die Elemente innerhalb des angegebenen Bewertungsbereichs zurück, indem Sie die Bewertung angeben > Wenn sich der Bewertungswert eines Elements ändert, können Sie auch die Zincrby-Anweisung verwenden, um den Bewertungswert des Elements zu addieren oder zu subtrahieren.

Verwenden Sie die -Anweisung, um eine Schnittmenge und Vereinigung mehrerer geordneter Mengen durchzuführen und dann die neue geordnete Menge in einem neuen Schlüssel zu speichern. Wenn doppelte Elemente vorhanden sind, werden die Werte wiederholt Elemente werden hinzugefügt und dann als Bewertungswert des Elements im neuen Satz verwendet.

Sie können geordnete Sammlungen verwenden, um Ranglisten zu zählen und die Ranglisten in Echtzeit zu aktualisieren. Es kann auch zum Aufzeichnen von Schülerergebnissen verwendet werden, sodass Sie problemlos eine Liste der Schüler innerhalb eines bestimmten Zeitraums erhalten können Sie können den Bewertungsbereich auch verwenden, um Systemstatistiken zu gewichten und sie in Echtzeit auf dem Dashboard anzuzeigen.

    Hash Hash
  • weggelassenzscan

    Bitmap

    Eine Bitmap ist eine Reihe fortlaufender Binärzahlen, die tatsächlich auf der Grundlage von string

    gekapselt und gespeichert werden eine Stück-für-Stück-Basis. Die Position jedes Bits in der Bitmap ist der Offset. Sie können setbit und bitfield verwenden, um 0 oder 1 für jedes Bit in der Bitmap zu setzen. Sie können auch die Anzahl der auf 1 gesetzten Bits zählen Verwenden Sie bitcount auch, um die Anzahl der in der Bitmap auf 1 gesetzten Bits zu zählen. Mit bitop können Sie Operationen wie AND, OR, XOR usw. für mehrere Bitmaps ausführen.

    Redis 笔记

    Bitmaps zeichnen sich dadurch aus, dass Operationen wie bitweises Setzen, Summieren und ODER-Verknüpfung sehr effizient sind und die Speicherkosten bei der Speicherung sehr niedrig sind Objekt-Tag-Attribute: Ein Bit kann ein Tag speichern. Sie können Bitmap verwenden, um den Anmeldestatus des Benutzers in den letzten N Tagen zu speichern, indem Sie jeden Tag 1 Bit verwenden und es beim Anmelden auf 1 setzen. bitmap

    Personalisierte Empfehlungen sind in sozialen Anwendungen sehr wichtig. Sie können eine Reihe von Tags für Nachrichten und Feeds festlegen, z. B. Militär, Unterhaltung, Video, Bilder, Text usw. Zum Speichern dieser Tags wird Bitmap verwendet entsprechendes Tag-Bit auf 1 setzen. Für Benutzer kann eine ähnliche Methode verwendet werden, um mehrere Benutzerattribute aufzuzeichnen und mehrdimensionale Statistiken basierend auf Tags einfach durchzuführen. Wichtige Anweisungen für Bitmap-Bitmaps sind: setbit, getbit, bitcount, bitfield, bitop, bitpos usw.

    Nutzungserfahrung

    Statistik des Benutzer-Anmeldestatus: 1 2 3 Anmeldung innerhalb von 5 Tagen

    Bitmap: 1 1 1 0 1

    GEO geografischer Standort

    Wenn Sie einen bestimmten Standortpunkt speichern, verwenden Sie zunächst den

    -Algorithmus, um den zweidimensionalen Längen- und Breitengrad des Standorts abzubilden und in ein eindimensionales 52-Bit zu kodieren Geben Sie einen ganzzahligen Wert ein und kombinieren Sie den Ortsnamen, den Längen- und Breitengrad. Die codierte Punktzahl wird als Schlüssel-Wert-Paar in der sortierten Menge gespeichert, die dem Klassifizierungsschlüssel entspricht. Geohash

    Wenn Sie die Anzahl der Personen in der Nähe eines bestimmten Standorts Punkt A berechnen müssen, verwenden Sie zunächst den angegebenen Standort A als Mittelpunkt und die Entfernung als Radius, um den 8-Azimut-Bereich des GEO-Hashs zu berechnen Befragen Sie nacheinander die Personen innerhalb des Azimutbereichs, solange der Abstand zwischen diesen Positionspunkten und der Mittelposition A innerhalb des erforderlichen Entfernungsbereichs liegt. Nachdem Sie alle Standortpunkte innerhalb des Bereichs abgefragt haben, ordnen Sie sie neu an, um alle Ziele in der Nähe von Standortpunkt A zu erhalten.

    Verwenden Sie geoadd, um Standortnamen (z. B. Personen, Fahrzeuge, Geschäftsnamen) und entsprechende geografische Standortinformationen zum angegebenen Standortklassifizierungsschlüssel hinzuzufügen.

    Verwenden Sie geopos, um den Standort eines Namens einfach abzufragen Standortinformationen;

    Verwenden Sie den Georadius, um alle Elemente in der Nähe des angegebenen Standorts zu erhalten und die angegebene Entfernung nicht zu überschreiten.

    Geografischer Standort von Redis GEO. Verwenden Sie Geohash, um eine große Anzahl zweidimensionaler Längengrade zu konvertieren Breitengrad in eindimensionale Ganzzahlwerte umwandeln, was die Abfrage des geografischen Standorts, das Messen von Entfernungen und den Suchbereich erleichtert. Aufgrund der großen Anzahl geografischer Punkte kann es jedoch zu einer großen Anzahl von Elementen unter einem geografischen Klassifizierungsschlüssel kommen. Beim Entwurf von GEO muss im Voraus geplant werden, um eine übermäßige Erweiterung eines einzelnen Schlüssels zu vermeiden.

    Die geografische Standortdatenstruktur GEO von Redis bietet viele Anwendungsszenarien, z. B. die Abfrage des spezifischen Standorts eines Ortes, die Überprüfung der Entfernung vom aktuellen Standort zum Ziel, die Überprüfung von Personen in der Nähe, Restaurants, Kinos usw. In der geografischen Standortdatenstruktur von GEO gehören zu den wichtigen Anweisungen geoadd, geopos, geodist, georadius, georadiusbymember usw.

    Verwenden Sie Geodist, um die Entfernung zwischen zwei angegebenen Orten zu ermitteln.

    hyperLogLog-Kardinalitätsstatistik

    ist ein Datentyp, der für Kardinalitätsstatistiken verwendet wird, wenn eine große Anzahl von Elementen für Statistiken eingegeben wird, nur wenig Speicher ist erforderlich. HyperLogLog speichert keine Metadaten, sondern zeichnet nur die geschätzte Anzahl der zu zählenden Elemente auf. Bei dieser geschätzten Anzahl handelt es sich um einen Näherungswert mit einer Standardabweichung von 0,81 %. In den meisten Geschäftsszenarien ist ein Fehler von weniger als 1 % akzeptabel . hyperLogLog

    Wenn die Anzahl der Zählungen nicht groß ist, verwendet HyperLogLog von Redis den Speicher mit geringer Dichte In eine dichte Matrix geändert, ist der von der dichten Matrix eingenommene Speicherplatz festgelegt und beträgt etwa 12 KB.

    Über den hyperLoglog-Datentyp können Sie pfadd verwenden, um der Kardinalitätsstatistik neue Elemente hinzuzufügen, Sie können pfcount verwenden, um die ungefähre Anzahl der in der hyperLogLog-Struktur gespeicherten Kardinalitäten zu erhalten, und Sie können auch hypermerge zum Zusammenführen verwenden Mehrere hyperLogLogs in einer hyperLogLog-Struktur zusammenfassen, sodass die kombinierte Basisnummer leicht ermittelt werden kann.

    Das Merkmal von hyperLogLog ist, dass der statistische Prozess keine unabhängigen Elemente aufzeichnet, sehr wenig Speicher beansprucht und sich sehr gut zum Zählen großer Datenmengen eignet. In großen und mittelgroßen Systemen kann der Datentyp hyperLogLog verwendet werden, um die Anzahl der einzelnen Besucher pro Tag oder Monat zu zählen oder um die Anzahl der unabhängigen Begriffe zu zählen, die von einer großen Anzahl von Benutzern gesucht werden.

    Verwandte Lernempfehlungen:

    Laravel

Das obige ist der detaillierte Inhalt vonVerstehen Sie den Kerndatentyp von Redis. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:learnku.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen