Новый EXPIRE/SET EX перезаписывает TTL; относительное время считается от момента команды. TTL отражает остаток.
Разбор
- Продление сессии = повторный EXPIRE.
EXPIRE 0 или отрицательный — удаление (семантика версии).
- Следите, чтобы refresh path не забывал обновлять TTL.
TOUCH обновляет LRU, но не TTL.
Итог
EXPIRE всегда задаёт новый срок жизни от «сейчас».