2016-04-07 4 views
2

Ich möchte eine Mapping von Benutzer-Session-IDs in Aerospike speichern, wäre es vom Typ: id->[session1, session2]. Ich möchte, dass jede Sitzungs-ID eine bestimmte TTL hat.Einzelne TTLs für Listenelemente in Aerospike

Wie kann ich das schaffen? Kann ich eine Map erstellen und eine TTL auf jedes Element setzen?

Antwort

3

Im Aerospike ist TTL eine Eigenschaft auf Rekordniveau. Sie können es also nicht auf ein Element in der Liste/Karte setzen. Es kann auch nicht auf der Bin-Ebene eingestellt werden.

So können Sie zwei Sitzungen als zwei verschiedene Datensätze (durch Generieren eines zusammengesetzten Schlüssels mit Benutzer-ID und Sitzungs-ID) mit ihren jeweiligen TLS speichern, so dass Aerospike die Datensätze automatisch ablaufen wird.

Eine Alternative besteht darin, die Sitzung ttl zusammen mit der Sitzungs-ID als Paar zu speichern und den Sitzungsablauf aus der Anwendung zu behandeln. Sie können das Maximum aller Sitzungen als Ttl des Datensatzes festlegen. Wenn alle Sitzungen ablaufen, wird Aerospike den Datensatz vom System ablaufen lassen, wodurch Platz frei wird.