TTL для заданного члена
Возможно ли в Redis установить TTL (время жизни) не для определенного ключа, а для члена для набора?
Я использую структуру для тегов, предложенных в документации Redis - данные представляют собой простые пары ключ-значение, а теги - это наборы, содержащие ключи, соответствующие каждому тегу, например,
> SETEX id:id_1 100 'Lorem ipsum'
OK
> SADD tag:tag_1 id:id_1
(integer) 1
Ключid:id_1
истечет, как и ожидалось, но я нене вижу эффективного способа удалить соответствующий элемент изtag:tag_1
задавать.
Один из подходов, который я придумала, - использовать задание cron, содержащее скрипт, который периодически удалял бы ключи с истекшим сроком из наборов - добавляя все имена тегов в другой набор, а затем перебирая все теги, затем все идентификаторы, соответствующие каждому тегу, и проверяя, соответствующий ключ существует - если нет, звонит.SREM
Я неНе думаю, что это будет эффективный способ, и я, возможно, хотел бы сохранить теги настолько чистыми, насколько это возможно, потому что размер наборов, вероятно, повлияет на производительность поиска по нескольким тегам (SINTER
). Есть ещевнутренний» путь?