Symfony и Redis куда писать логику получения кэша?
Сделать сервис, в нём методы получения данных. В методах доступ к кэшу и к репозитоиям. 
В идеале, в контроллере вообще не нужны репозитории - вся работа с ними в этом сервисе.
В этом сервисе и инвалидация делается.
Методы могут быть по конкретной сущности, а могут быть по типу (getEntity($type, $id)), если удобно.UPD. В качестве инструмента рекомендую использовать компонент Cache Component, в нём есть возможность использовать тегирование записей, это очень удобно (для инвалидации)! Doctrine Cache устарел, имхо.
Делайте отдельный сервис. В сервисе метод получения списка пользователей в котором и воткнете нужные проверки. Особенно если у вас список пользователей потребуется в разным местах, а затем вы решите сменить механизм кеширования, вам достаточно будет поправить логику только  в одном месте. В сервис можно будет добавить кучу еще всяких методов, например удаление пользователя, который будет дропать пользователя сразу и из кеша и из базы, или получение списка подчиненных, который у каждого авторизированного пользователя разный. Кароче инкапсуляция во всей красе.