Ваш вопрос очень широкий и поэтому трудно ответить.Сохранение 300-400 элементов под ключом кеша кажется мне проблематичным.Вы можете столкнуться с проблемами, когда сериализация при хранении в кеше и десериализация при извлечении данных создаст вам проблемы.Когда служба кэширования не работает, ваше приложение будет практически непригодным для использования.
Если вы уже столкнулись с проблемами при очистке / обновлении кэша, возможно, вы захотите найти альтернативу.Это может быть база данных или эластичный поиск, расширенные функции кэширования, такие как теговое кэширование , могут помочь вам избежать необходимости очищать весь кэш при обновлении части информации.Возможно, вы также захотите использовать что-то вроде провайдера цепочек для хранения вещей в нескольких кэшах, чтобы предотвратить вышеупомянутую проблему с недоступным кешем, «ломающим» ваше приложение.Вы также можете взглянуть на шаблон, общий для CQRS, который называется моделью чтения.
В игру вступает множество переменных.Если вы хотите знать, какой из них даст наилучшие результаты, т.е. какой быстрее, вам следует часто проводить тесты производительности с реалистичными данными, используя панель отладки Symfony и профилировщики или сторонние службы, такие как blackfire.io или приливы .Вам также может потребоваться выполнить тестирование емкости с помощью такого инструмента, как JMeter , чтобы убедиться, что эти результаты остаются в силе, когда одновременно работают несколько пользователей.