Я ещё не сделал, пока на стадии обдумывания реализации, так сказать бэст практис.
Бест-практик - это разумно использовать существующие и зарекомендовавшие себя инструменты... Можно все хранить в памяти приложения и таймеры вести... плюсы - мгновенно, минусы - падение приложения = потеря ссылок... улучшаем - добавляем БД... плюсы - надежно, минусы - нужно вести таймеры, чистить от устаревших данных, тратится время на запросы/чтение (или городить механизмы синхронизации)...
и тут вступает редис - умеет вести самостоятельно время жизни записи (механизмы синхронизации), очень быстрая работа с данными (т.к. они в памяти), пишет на диск в соответствии с настройками сброса (надежность)... итог - вам остается написать только два куска кода: создать ссылку и сунуть ее по короткому ключу в редис с временем жизни, при запросе считать по короткому ключу полную ссылку из редиса и кинуть редирект... итого работы над кодом примерно час времени и надежность на высоте