Heim > Datenbank > Redis > Hauptteil

Informationen zur Implementierung einer Rangliste durch Java basierend auf der von Redis geordneten Sammlung

藏色散人
Freigeben: 2020-09-11 13:23:18
nach vorne
2066 Leute haben es durchsucht

Die Spalte Redis-Tutorial stellt Ihnen die Implementierung der Rangliste in Java basierend auf dem von Redis bestellten Satz vor. Ich hoffe, dass sie Freunden in Not hilfreich sein wird!

Informationen zur Implementierung einer Rangliste durch Java basierend auf der von Redis geordneten Sammlung

Vorwort

Als fast unverzichtbares Element in Internetanwendungen können Rankings den Wunsch nach Vergleichen wecken. Es gibt auch Möglichkeiten, Rankings wie Produktverkaufsrankings in einem bestimmten Schatz, Rankings zur Reputation von Geschäften usw. umzusetzen. Es gibt viele Möglichkeiten, den Schnellsortierungsalgorithmus zu verwenden und die Comparator-Schnittstelle zu implementieren, um nach einer bestimmten Gewichtung zu sortieren. Jetzt verwenden viele Unternehmen Redis, eine NoSQL-Datenbank, um die Ranking-Funktion zu implementieren Was wir jetzt tun müssen, ist, das Unternehmensranking auszuwerten. Der Ranking-Standard ist die Anzahl der Benutzersuchen nach dem Unternehmen und ein Ranking der Top-Ten-Unternehmen Die Implementierung der Ranking-Funktion ist eine Sortiermenge (geordnete Menge).

Über die Sortiermenge

Eines der Merkmale einer Menge ist, dass sie keine doppelten Elemente enthält Elemente hat eine Sortiermenge auch eine weitere Eigenschaft, nämlich Ordnung.

Zusammensetzung der Datenstruktur:

Schlüssel: die eindeutige Kennung des Sortiersatzes

Gewicht: auch Score (Score) genannt. Redis sortiert die Elemente im Satz in aufsteigender Reihenfolge nach Gewicht (Standard), das Gewicht kann wiederholt werden

Wert: Set-Element, Elemente sind nicht wiederholbar

String(set key),double(权重),String(value)
Nach dem Login kopieren
    Sortiersatz wird über eine Hash-Tabelle implementiert, daher beträgt die zeitliche Komplexität des Hinzufügens, der Funktionen und der Suche O(1). Jeder Satz kann mehr als 4 Milliarden Elemente speichern
  • Grundlegende Befehle
  • Fügen Sie ein oder mehrere Elemente zum Satz hinzu (Gewicht)
ZADD "KEY" SCORE "VALUE" [ SCORE "VALUE"]
Nach dem Login kopieren

Effekt

MyRedis:0>ZADD test 1 "one""1"MyRedis:0>zadd test 4 "four" 5 "five""2"
Nach dem Login kopieren

Erhöhen Sie die angegebene Punktzahl für das angegebene Element des angegebenen Satzes

ZCARD "key"
Nach dem Login kopieren
Effekt:

MyRedis:0>ZCARD test"5"
Nach dem Login kopieren

Erhalten Sie die Elemente im angegebenen Bereich (Standard in aufsteigender Reihenfolge von. Punktzahl|Gewicht)

ZSCORE "KEY" "VALUE"
Nach dem Login kopieren
Effekt

MyRedis:0>ZSCORE "test" "one""2"
Nach dem Login kopieren

Es sind ungefähr so ​​viele Befehle erforderlich, um diese Anforderung zu erfüllen, und dann beginnen wir, unsere Anforderungen zu erkennen

2. Springboot + Redis-ImplementierungRedis-Abhängigkeiten importieren

ZINCRBY "key" score "value"
Nach dem Login kopieren

Schreiben von Tool-Klassen

MyRedis:0>ZSCORE "test" "one""2"MyRedis:0>ZINCRBY "test" 1 "one""3"MyRedis:0>ZSCORE "test" "one" "3"
Nach dem Login kopieren

Geschäftsimplementierung:

Da das Ranking hohe Echtzeitanforderungen stellt, denke ich persönlich, dass es nicht notwendig ist, in der Datenbank zu bleiben

Ein weiteres Problem ist das Ranking-Problem mit der gleichen Punktzahl.

Wenn ich möchte, dass A derjenige ist, der zuerst angekommen ist, vor B, der die gleiche Punktzahl hat, aber später angekommen ist.

Um dieses Problem zu lösen, können wir erwägen, der Punktzahl einen Zeitstempel hinzuzufügen. Die Berechnungsformel lautet:

ZRANGE "key" 开始下标 结束下标
Nach dem Login kopieren
Dieses Unternehmen kann es mit der Zeit selbst schreiben, um den Fehler so weit wie möglich zu reduzieren

Das obige ist der detaillierte Inhalt vonInformationen zur Implementierung einer Rangliste durch Java basierend auf der von Redis geordneten Sammlung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!