Redis
 sql >> Base de données >  >> NoSQL >> Redis

TTL pour un membre d'ensemble

Non, ce n'est pas possible (et pas prévu non plus). L'approche recommandée consiste à utiliser un ensemble ordonné avec un score défini sur l'horodatage, puis à supprimer manuellement les clés expirées. Pour rechercher des clés non expirées, vous pouvez utiliser ZRANGEBYSCORE $now +inf , pour supprimer les clés expirées, ZREMRANGEBYSCORE -inf $now fera l'affaire.

Dans mon application, j'émets simplement les deux commandes chaque fois que j'interroge l'ensemble. Je combine également cela avec un délai d'expiration (long) sur l'ensemble lui-même pour éventuellement purger les ensembles inutilisés.

Cet article le décrit plus en détail.