А кешируете как то результаты запросов к api?
сами запросы нет, кэшируются данные из БД. Но кэш немного хитрый(хитрый для битры) - кэшируется не полная выборка, а каждый отдельный элемент выборки.
Например, если запрашивается сначала 20 товаров, они попадают в кэш. Потом пользователь решил смотреть не по 20 элементов, а по 40.
При запросе 40 элементов первые 20 будут получены из кэша, остальные 20 из БД, после чего будут добавлены в кэш.
И так по всем вложенностям. Связка товар - бренд, товар - цвет и т.д.
Товар если есть в кэше - берется из кэша, у товара смотрится бренд - если он есть в кэше - берется из кэша и т.д.
У каждой сущности свое время кэша.