Ich suche nach einer Möglichkeit, eine Liste von Elementen für einen Benutzer zu speichern, die innerhalb von 24 Stunden abläuft. Gibt es eine Möglichkeit, dies mit Redis zu erreichen? Ich dachte daran, einfach die Liste zu verwenden und für jedes einzelne Element einen Ablauf festzulegen. Gibt es einen besseren Weg?Redis Liste mit ablaufenden Einträgen?
Antwort
Nein, Sie können den Ablauf für jedes Element in einem LIST
nicht festlegen. Sie können nur einen Ablauf für die gesamte LIST
festlegen.
Um dies zu erreichen, was Sie wollen, müssen Sie für jedes Element einen Schlüssel haben:
SET user1:item1 value EX 86400
SET uesr1:iter2 value EX 86400
SET user2:item1 value EX 86400
Um alle Elemente eines bestimmten Benutzers zu erhalten, können Sie den SCAN
Befehl mit einem Muster verwenden können (oder Verwendung die Keyspace Notification
eine bessere Leistung zu erzielen, aber mit komplexeren Arbeit):
SCAN 0 MATCH user1:*
Wie in der Antwort akzeptiert, Ablauf in Redis bemerkt nur bei Schlüssel-Ebene durchgeführt wird - verschachtelte Elemente nicht abgelaufen sein.
Um eine Liste mit ablaufenden Elementen zu implementieren, können Sie die Datenstruktur Sorted Set verwenden. Die Punktzahl jedes Mitglieds sollte die aktuelle Epoche sein, so dass Sie die Reihenfolge des Einfügens beibehalten. Wenn die Werte (Mitglieder) nicht eindeutig zuzuordnen sind, machen sie so durch die Epoche verketten, z.B .:
ZADD user1:items 1514822755 1514822755:value
ZADD user1:items 1514822758 1514822758:value
To „verfallen“ Artikel, rufen Sie ZREMRANGEBYSCORE
von -inf
und die aktuelle Epoche minus 24 Stunden.
- 1. Kerberos-Authentifizierung mit ablaufenden Passwörtern
- 2. Liste mit 13 Gigs Ram mit 127 mil Einträgen: wie?
- 3. Hinzufügen von Einträgen im Wörterbuch zur Liste
- 4. 2 Jlists mit identischen Einträgen
- 5. Filtern einer Liste von Einträgen in Python
- 6. entfernen Reißverschluss Paare mit gleichen Einträgen in Python Liste
- 7. Liste der Datensätze mit mehreren Einträgen am selben Datum abrufen
- 8. JPA - unidirektionale Beziehung enthält Liste mit doppelten Einträgen
- 9. mit doppelten Einträgen
- 10. Redis speichern Liste innerhalb Hash
- 11. automatisch ablaufenden Tests mit Typoskript und Mokka, wenn eine Datei
- 12. Abgleich von DB-Einträgen mit Active Directory-Einträgen?
- 13. eq mit mehreren Einträgen Filterverhalten
- 14. dangerousSetInnerHTML mit mehreren HTML-Einträgen
- 15. Benutzerdefinierte ListPreference mit dynamischen Einträgen
- 16. exec() Bytecode mit beliebigen Einträgen?
- 17. Qt - Bytearray mit leeren Einträgen?
- 18. R Datenrahmen mit leeren Einträgen
- 19. Dateibeat mit Redis
- 20. Redis "Null" oder "leere Liste oder Set"
- 21. Python Redis bekommen Liste basierend auf Timestamp
- 22. Redis Capped Sortiertes Set, Liste oder Warteschlange?
- 23. wie mongo daten in redis-liste einfügen
- 24. Wiederherstellbare PUB/SUB mit Redis
- 25. Mit Versprechen mit redis
- 26. wie können wir gleichzeitig ablaufenden Transaktionen in Hibernate behandeln
- 27. Wie bekomme ich Listen von String-Einträgen einer Liste?
- 28. Entfernen bestimmter Zeichen aus den Einträgen in einer Liste
- 29. Wie berechnet man die Gesamtzeit zwischen einer Liste von Einträgen?
- 30. Redis RPUSH mit Mehrfachwert-Empfehlungen