В прошлом я задал несколько вопросов о том, как создать свой собственный API, чтобы позволить внешним сайтам получать доступ к моей базе данных, хранящейся в базе данных. Этот конкретный вопрос заключается в том, что я прошу дать рекомендации о том, как оптимизировать доступ API для внешних сайтов, чтобы снизить нагрузку на локальный сервер. Сначала, как настраивается API, он использует MySQL, который содержит данные и php для обслуживания данных. Сам API вызывается URL-адресом с ключом API в URL-адресе. Например:Поиск предложений по оптимизации API
http://mysite.com/get_listings.php?key=somekey
Затем мой скрипт делает то, что ему нужно сделать для действия выше, а затем возвращает результаты в формате json. В настоящее время API обслуживает 10-15 тыс. Уникальных звонков в месяц, и я добавляю еще одну группу сайтов, которая введет еще 20-30 тыс. Уникальных звонков в месяц поверх того, что сейчас работает API. Кэширования не происходит, это просто прямой вызов моего API через php-скрипт, и он запрашивает базу данных MySQL каждый вызов. Тип данных, которые он возвращает, - это в основном рассказы и информация о профиле, а вызовы - это такие вещи, как последние истории, профиль автора истории и истории.
Помимо обычной оптимизации php-кода и оптимизации запросов и индексов MySQL вы можете предложить любые другие методы оптимизации, которые могут помочь снизить нагрузку на сервер и по-прежнему быстро обслуживать API на внешних сайтах? Я понимаю, что внешние сайты сами по себе должны делать что-то вроде кэширования на своем конце. Но на моем конце вы предлагаете кэшировать результаты из db, а затем обслуживать кеш? Если это так, то использование memcache будет хорошим выбором? Или, возможно, сохранение результатов json в redis? Или, может быть, простая система кэширования файлов будет работать? Что-нибудь кроме кэширования? Очевидно, серверное оборудование может изменить ситуацию, но выходит за рамки этой публикации. Я скажу, однако, что я получу совершенно новый сервер, который будет посвящен только этому.
У меня есть root-доступ для установки дополнительного программного обеспечения, если это помогает.
50 тыс. В месяц это ничего. Не беспокойтесь об этом. –
@OZ_ На самом деле, если это другое место на нем может перепрыгнуть более миллиона. Основная цель - найти решение, которое будет хорошо работать сейчас, но также может масштабироваться, чтобы обрабатывать больше. – John