2016-04-16 11 views
0

Jetzt habe ich einige Änderungen in meiner Lösung vorgenommen. Was ich jetzt bekommen möchte, ist Key-> Score-Paare für einen bestimmten Bereich von Schlüsseln. Zum Beispiel: set = [1: 3, 2: 5, 7: 8, 10: 1] für Bereich [2, 8] Ich mag erhalten: [2: 5, 7: 8]Erhalte Schlüssel und Ergebnis des zuletzt eingefügten Artikels in Redis sortierten Satz

Wie kann ich die zuletzt eingefügten (oder die letzten 5) Artikel von Redis sortiert bekommen? Ich habe versucht, die Zrange-Funktion, aber es berücksichtigt die Punktzahl bei der Sortierung. Kann ich sie irgendwie nach der Einführungszeit sortieren lassen? Oder mit dem Schlüssel?

Ich dachte über die Verwendung von Liste, aber ich muss auch auf Elemente per Schlüssel zugreifen, und deshalb möchte ich sortierte Mengen (bessere Zugriffszeit Komplexität) verwenden.

Danke!

+1

Partitur, die du benutzt hast bedeutet etwas? vielleicht kannst du den timestamp als score benutzen? –

+0

ja, das Ergebnis ist wichtig. Ich habe die Frage bearbeitet. Jetzt möchte ich ein Intervall basierend auf dem Schlüsselbereich erhalten. zrange gibt das Ergebnis basierend auf den Scorewerten an. – giliev

+0

Vielleicht können Sie ein Lua-Skript hinzufügen, um dies zu tun, sobald Sie die Anfrage erhalten, Sie Daten in zwei Zset-Struktur wie Build einen Index auf "Schlüssel", wie wir in RDMS tun. Sie werden auch eine Punktzahl erhalten? Wenn nicht, können Sie vielleicht einen Algorithmus verwenden, um auch keyinfo mit der Punktzahl hinzuzufügen. –

Antwort

0

Sie können Ihre Partitur zu einem zusammengesetzten Wert zusammenfassen: eine Verkettung des Zeitstempels und der Originalpartitur.

Die ersten 10 Ziffern sind Zeitstempel, wenn das Element eingefügt wurde. Die x letzte Ziffer ist die Punktzahl des Gegenstandes (dh Sie müssen am Anfang etwa 0 eingeben, um immer die gleiche Ziffer zu haben).

Beispiel: 148594228400023

Dann können Sie die letzten 5 eingefügt Elemente mit zrevrangebyscore erhalten und die Partitur des Elements abzurufen.

Verwandte Themen