Лучший способ кешировать RESTful API результаты вызовов GET

Я думаю о лучшем способе создания слоя кэша спереди или в качестве первого слоя для запросов GET к моему RESTful API (написанному на Ruby).

Не каждый запрос может быть кэширован, потому что даже для некоторых запросов GET API должен проверять запрашивающего пользователя / приложение. Это означает, что мне нужно настроить, какой запрос кэшируется и как долго каждый кэшированный ответ является действительным. В некоторых случаях мне нужно очень короткое время истечения, например, 15 с и ниже. И я должен иметь возможность позволить истечению срока действия записей кэша приложением API, даже если срок действия еще не достигнут.

Я уже думал о многих возможных решениях, моих двух лучших идеях:

первый уровень API (даже до маршрутизации), кеширующая логика сама (чтобы все параметры конфигурации были у меня в руках), ответы и срок действия сохраняются в Memcached

прокси-сервер веб-сервера (с высокой степенью конфигурации), возможно, что-то вроде Squid, но я никогда раньше не использовал прокси для такого случая, и ям абсолютно не уверен в этом

Я также подумал о решении кеша, как Varnish, я использовал Varnish для "обычный" веб-приложения и этоВпечатляет, но конфигурация особенная. Но я бы использовал это, если этосамое быстрое решение.

Другая мысль заключалась в том, чтобы кэшировать индекс Solr, который яЯ уже использую на уровне данных, чтобы не запрашивать базу данных для большинства запросов.

Если у кого-то есть подсказка или хорошие источники для чтения по этой теме, дайте мне знать.

Ответы на вопрос(5)

Ваш ответ на вопрос