Ist es in Redis möglich, TTL (Time to Live) nicht für einen bestimmten Schlüssel, sondern für ein Mitglied für einen Satz festzulegen?
Ich verwende eine Struktur für Tags, die in der Redis-Dokumentation vorgeschlagen wurden. Die Daten sind einfache Schlüssel-Wert-Paare, und die Tags sind Sätze, die Schlüssel enthalten, die jedem Tag entsprechen, z
> SETEX id:id_1 100 'Lorem ipsum'
OK
> SADD tag:tag_1 id:id_1
(integer) 1
Der Schlüssel id:id_1
läuft wie erwartet ab, aber ich sehe keinen effizienten Weg, um das entsprechende Mitglied aus dem tag:tag_1
Set zu entfernen .
Eine Möglichkeit, die ich gefunden habe, besteht darin, einen Cron-Job zu verwenden, der ein Skript enthält, das abgelaufene Schlüssel regelmäßig aus Sätzen entfernt - indem alle Tag-Namen zu einem anderen Satz hinzugefügt und dann alle Tags durchlaufen werden, dann alle IDs, die jedem Tag entsprechen, und überprüft werden, ob entsprechender Schlüssel existiert - wenn nicht, aufrufen SREM
.
Ich denke nicht, dass dies ein effizienter Weg ist, und ich möchte möglicherweise die Tags so sauber wie möglich halten, da die Größe der Sets wahrscheinlich die Leistung der Suche nach mehreren Tags beeinflusst ( SINTER
). Gibt es einen "internen" Weg?