Heim  >  Artikel  >  Datenbank  >  Teilen Sie mehrdimensionale Redis-Ranking-Ideen

Teilen Sie mehrdimensionale Redis-Ranking-Ideen

藏色散人
藏色散人nach vorne
2023-04-21 16:01:381205Durchsuche

Dieser Artikel vermittelt Ihnen hauptsächlich die Idee des mehrdimensionalen Redis-Rankings. Ich hoffe, dass er für alle hilfreich ist.

Teilen Sie mehrdimensionale Redis-Ranking-Ideen

Problembeschreibung

  1. Es ist bekannt Das redis zset oft Es kann sofort für Rankings verwendet werden, hat jedoch den Nachteil, dass es nur eindimensionale Rankings unterstützt.

  2. Allerdings sind eindimensionale Rankings in der Tat sehr unpraktisch. Ein einfaches Beispiel ist das Walking-Ranking. Die Produktanforderungen basieren auf der Anzahl der Schritte und der Fertigstellung Uhrzeit und Name der Person. Bei der Rangfolge erfolgt die Sortierung von links nach rechts.

  3. Meine Lösung besteht darin, alle Dimensionen in Zahlen umzuwandeln und dann die Zahlen in diesen Dimensionen zu addieren, sodass mehrdimensionale Rankings gelöst werden können.

Spezifische Lösungsideen

  1. Anzahl der Schritte: Es ist eine Zahl und kann sein ignoriert#🎜🎜 #

  2. Abschlusszeit: Die Abschlusszeit speichert im Allgemeinen einen Zeitstempel. Je später der Zeitstempel liegt, desto größer ist der Abschlusswert. Um sicherzustellen, dass die Rangfolge umso höher ist, je früher die Abschlusszeit ist , je früher es abgeschlossen ist, desto größer ist der Wert. Wir können den Zeitstempel der Abschlusszeit des Benutzers von einem größeren Zeitstempel subtrahieren, sodass der Wert umso größer ist, je früher die Abschlusszeit ist.
  3. Personennamen bestehen im Allgemeinen aus chinesischen Schriftzeichen und Buchstaben. Wenn wir sortieren möchten, müssen wir die Zeichenfolgen zunächst in Zahlen umwandeln . Dieser Vorgang wird empfohlen. Verwenden Sie die native PHP-Funktion

    mb_ord.

  4. Zum Beispiel beträgt die Anzahl der Schritte eines Benutzers 10.000, die Abschlusszeit (nach Berechnung) beträgt 100.000 (ein zufällig geschriebener Zeitstempel) und der Name der Person beträgt 500 (nach Berechnung). ), was Zhang San (beiläufig geschrieben) ist, können wir einen Wert von 10000,100500 erhalten (Anzahl der Schritte, Abschlusszeit und Name der Person addiert).
  5. Im eigentlichen Prozess der Wertermittlung können wir den Dezimalpunkt entfernen, und die Zahl nach dem Dezimalpunkt wird nur für die Rangfolge verwendet.

    Empfohlenes Lernen: „

    Redis-Video-Tutorial

Das obige ist der detaillierte Inhalt vonTeilen Sie mehrdimensionale Redis-Ranking-Ideen. 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