Redis: Funktionsanfrage: Möglichkeit zum Auslaufen von Mitgliedern eines Sets hinzufügen

Erstellt am 11. Okt. 2011  ·  12Kommentare  ·  Quelle: redis/redis

Ich hätte gerne die Möglichkeit, Mitglieder eines Sets anstelle des gesamten Sets auslaufen zu lassen.

Die hier beschriebenen Muster http://groups.google.com/group/redis-db/browse_thread/thread/ad75cc08b364352b sind für mich nicht wirklich machbar.

Hilfreichster Kommentar

Dies wird nicht hinzugefügt. Es ist viel zusätzlicher Speicher erforderlich, ganz zu schweigen von einer Menge Verarbeitung, um sicherzustellen, dass die Elemente tatsächlich abgelaufen sind. Der beste Weg, dies zu implementieren, besteht darin, dies selbst zu modellieren, damit Sie sich auf das Nötigste beschränken können, während Sie die Flexibilität behalten, die Dinge nach Belieben zu ändern.

Das beste Muster, um dies zu modellieren, ist meiner Meinung nach die Verwendung sortierter Sets mit einer Punktzahl, die dem Zeitstempel entspricht, den das Mitglied ablaufen soll. Sie können ZRANGEBYSCORE <now> +inf , um alle Elemente abzurufen, die noch nicht abgelaufen sind, und ZREMRANGEBYSCORE , um Elemente abzulaufen. Da eine sortierte Menge auch von einer Hash-Tabelle unterstützt wird, behalten Sie die O(1)-TTL-Suche bei.

Viel Glück.

Alle 12 Kommentare

Hallo, leider ist es nicht in unseren Plänen! Es tut uns leid.

Die Begründung in einem Satz lautet: zu komplex, zu speicherverbrauchend, mehr CPU erforderlich.
Im Allgemeinen ist das Redis-Modell: auf der Schlüsselebene viele Funktionen: Zeitüberschreitung, Migration, Sharding (Redis-Cluster). Auf Wertniveau keine ausgefallenen Sachen.

Dies wird nicht hinzugefügt. Es ist viel zusätzlicher Speicher erforderlich, ganz zu schweigen von einer Menge Verarbeitung, um sicherzustellen, dass die Elemente tatsächlich abgelaufen sind. Der beste Weg, dies zu implementieren, besteht darin, dies selbst zu modellieren, damit Sie sich auf das Nötigste beschränken können, während Sie die Flexibilität behalten, die Dinge nach Belieben zu ändern.

Das beste Muster, um dies zu modellieren, ist meiner Meinung nach die Verwendung sortierter Sets mit einer Punktzahl, die dem Zeitstempel entspricht, den das Mitglied ablaufen soll. Sie können ZRANGEBYSCORE <now> +inf , um alle Elemente abzurufen, die noch nicht abgelaufen sind, und ZREMRANGEBYSCORE , um Elemente abzulaufen. Da eine sortierte Menge auch von einer Hash-Tabelle unterstützt wird, behalten Sie die O(1)-TTL-Suche bei.

Viel Glück.

+1 für sortierte Sets für diese Aufgabe. Wir verwenden das für Millionen von ganzen Zahlen in sortierten Mengen und es ist in Ordnung

+1

+1 wäre ein tolles Feature (aber natürlich mit Kosten verbunden)

+1

+1 Es sollte hinzugefügt werden. Gedächtnis ist ein Geben und Nehmen, das der Benutzer berücksichtigen sollte. Wenn wir die Funktion tatsächlich benötigen, nehmen wir das Ergebnis der Verwendung von mehr Speicher mit Sicherheit.

Wie wäre es, einen Befehl an ein EXPIRE zu binden? Auf diese Weise können wir Schlüssel ablaufen lassen, aber das Löschen eines bestimmten Mitglieds eines Sets auslösen?

+1

+1, Ablaufzeit für Redis-Set-Mitglieder wird sehr geschätzt.

Dies sollte hinzugefügt werden. Offensichtlich ist mehr Speicher und Rechenaufwand beteiligt. Aber ohne dies benötigt jeder, der dies benötigt, mehr Speicher und Rechenzeit UND die Entwicklerzeit, um dieselbe Lösung mit sortierten Mengen zu implementieren.

+1 Es wäre schön, wenn dieses Feature hinzugefügt würde, denn dann kann jemand entscheiden, ob es verwendet wird oder nicht, es wäre wahrscheinlich langsamer, wenn ein Entwickler dies sowieso selbst implementieren würde.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen