Как можно уменьшить время получения запроса?

Использую api кинопоиска для вывода рейтинга фильмов с сайта вот отсюда в реализации php вот собствено код

<?php
    $ch = curl_init();
    
    curl_setopt($ch, CURLOPT_URL, "http://api.kinopoisk.cf/getFilm?filmID=714888
    ");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_HEADER, FALSE);
    
    $response = curl_exec($ch);
    curl_close($ch);
    $querys = json_decode($response);
    $star=$querys->ratingData->rating;
    $IMDd=$querys->ratingData->ratingIMDb;


и если на странице с одним запросом это работает быстро все хорошо то на странице категорий где таких запросов может быть много все работает куда как медленней. Записывать в базу не выход рейтинги могут меняться очень быстро(что актуально для вновь снятых фильмов). Посоветуете как можно ускорить работу с api?
  • Вопрос задан
  • 134 просмотра
Пригласить эксперта
Ответы на вопрос 3
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
Да кешируйте запросы на минут 15-30, уже хорошо будет. А поможет в этом redis.io
$response = $redisClient -> get('filmID:714888');
if($response == FALSE) {
    ....
    $response = curl_exec($ch);
    $redisObj->setex('filmID:714888',  900, $response);
    curl_close($ch);
}
$querys = json_decode($response);
.....
Ответ написан
Комментировать
IIISpikerIII
@IIISpikerIII
Если в документации по API нет возможности делать выборку по нескольким значениям, то я бы использовал в данном случае какое либо кеширование результатов с определенным временем жизни, поскольку задержку в обновлении данных не избежать.
Ответ написан
Комментировать
1. Посмотреть, может есть API для получения данных по всем фильмам из категории.
2. В curl можно одновременно много запросов отправлять. Вот тут в самом конце прочитай. www.php.su/lessons/?lesson_11
3. Можно кешировать данные.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы