Intereting Posts
Подготовленный оператор `WHERE .. IN (..)` запрос и сортировка – с MySQL выберите значение параметра из базы данных по выбранным Как отправить почту с помощью gmail в Laravel 5.1? Получите все уведомления об уведомлении PostgreSQL о повышении Как получить только IP-адрес / подсеть переменные, передающие ничего, показывают неопределенную ошибку переменной, поэтому вы хотите поместить значение по умолчанию для переменной Ошибка при запуске: Не удалось загрузить ресурс: net :: ERR_CONNECTION_RESET PHP с помощью Declare? Что такое тик? PHP / mySQL – использование результата из «CONCAT» и «AS» в разделе «LIKE» PHP: Получить n-й элемент ассоциативного массива проверка формы в php Отключить маршрутизацию Laravel для определенной папки / маршрута Где APC хранит данные? Какова наилучшая практика PHP для использования функций, возвращающих true или false? Laravel – Вызов Перенаправления :: в () изнутри

как кэшировать результат twitter api?

Я хотел бы кэшировать результат результата twitter api и отображать их пользователям.

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

Я думаю, что написать результат в файл, основанный на ограничении времени. Это нормально или любой другой метод?

И самое главное, что будет идеальным временем кеширования? Я хотел бы отображать последний контент из твиттера, но twitter api имеет ограничения по запросу. И у моего сайта есть сплошные посетители / день ..

Самый простой способ сделать это – использовать APC (Alternative PHP Cache), если он установлен. Это имеет встроенную функциональность «время жить»:

if (apc_exists('twitter_result')) { $twitter_result = apc_fetch('twitter_result'); } else { $twitter_result = file_get_contents('http://twitter.com/...'); // or whatever your API call is apc_store('twitter_result', $twitter_result, 10 * 60); // store for 10 mins } 

Я бы выбрал 10-минутный тайм-аут по данным. Это может варьироваться в зависимости от того, как часто обновляется фид …


Изменить Если у вас нет APC, вы можете сделать это, используя очень простой файл:

 if (file_exists('twitter_result.data')) { $data = unserialize(file_get_contents('twitter_result.data')); if ($data['timestamp'] > time() - 10 * 60) { $twitter_result = $data['twitter_result']; } } if (!$twitter_result) { // cache doesn't exist or is older than 10 mins $twitter_result = file_get_contents('http://twitter.com/...'); // or whatever your API call is $data = array ('twitter_result' => $twitter_result, 'timestamp' => time()); file_put_contents('twitter_result.data', serialize($data)); }