В вашей ситуации данные будут изменены только через 5 минут . Поэтому, когда вы получаете тарифы, просто сохраняйте их в базе данных, а затем получайте новые значения и кешируйте их, а также определяйте пользовательские тарифы из кэшированной информации. Но когда уйдут следующие 5 минут, и вы получите самые новые тарифы, вы должны очистить существующий кеш, сохранить новые значения в базе данных, затем получить новые значения из базы данных и сохранить в кеше и снова передать скорости пользователю из нового кэшированного контента.
Если ваша база данных растет день ото дня, вы должны добавить дополнительную логику в , чтобы не сохранять миллионы записей в кеш каждые 5 минут . Советую не хранить динамический контент в кеше. В любом случае, если вы хотите кэшировать, вы можете использовать Redis, Memcached и т. Д. Но имейте в виду, чтобы очистить и снова сохранить новый контент в кэш.
Если вы получаете ежедневные тарифы каждые 5 минут и ничего не сохраняете в базе данных, вы можете использовать логику, описанную выше, без раздела базы данных. Непосредственно сохраняйте записи в кеше и очищайте при получении новых ставок.
А также добавьте index в таблицу базы данных, чтобы быстрее получать данные.