Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

TTL para um membro do conjunto


Não, isso não é possível (e tampouco planejado). A abordagem recomendada é usar um conjunto ordenado com pontuação definida para timestamp e, em seguida, remover manualmente as chaves expiradas. Para consultar chaves não expiradas, você pode usar ZRANGEBYSCORE $now +inf , para excluir chaves expiradas, ZREMRANGEBYSCORE -inf $now vai fazer o truque.

Na minha aplicação, eu simplesmente emito os dois comandos toda vez que consulto o conjunto. Eu também combino isso com o tempo de expiração (longo) no próprio set para eventualmente limpar os sets não utilizados.

Este artigo percorre-o com mais detalhes.