KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Is it possible in Redis to set TTL (time to live) not for a specific key, but for a member for a set? I am using a structure for tags proposed by Redis documentation - the data are simple key-value pairs, and the tags are sets containing keys corresponding to each tag, e.g. > SETEX id:id_1 100 'Lorem ipsum' OK > SADD tag:tag_1 id:id_1 (integer) 1 The key id:id_1 will expire as expected but i don't see an efficient way to remove the corresponding member from the tag:tag_1 set. One way I came up is using a cron job containing a script which would remove expired keys from sets periodically - by adding all the tag names to another set and then iterating through all the tags, then all the ids corresponding to each tag and checking if corresponding key exists - if not, calling SREM . I don't think it will be an efficient way and I would possibly like to keep the tags as clean as possible, because the size of the sets will probably affect performance of searching by multiple tags ( SINTER ). Is there a more "internal" way?
Tags (comma-separated)
Save Edits
Cancel