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