Memcached с Apache - обработка устаревших объектов - PullRequest
0 голосов
/ 31 октября 2018

Я использую memcached и Apache со следующей конфигурацией по умолчанию

CacheEnable socache /
CacheSocache memcache:IP:PORT
MemcacheConnTTL 30

Что будет, когда истечет 30 секунд и поступит запрос на тот же URL? Есть ли способ настроить ключ кеша? То есть Какие данные делают запрос уникальным? Что если сервер не может получить ответ? (например, тайм-аут для извлечения недавно обновленного объекта) Можно ли настроить его для обслуживания старого объекта?

Спасибо

1 Ответ

0 голосов
/ 09 ноября 2018

Что будет, когда истечет 30 секунд, и поступит запрос на тот же URL

Apache просто создаст новое соединение с memcached. Это не означает, что что-то случится с данными, хранящимися в memcached

https://httpd.apache.org/docs/2.4/mod/mod_socache_memcache.html#memcacheconnttl

Установите время для простоя соединений с сервером (ами) memcache. живой (только для резьбовых платформ).

Если вам нужно контролировать, как долго объект будет храниться в кэше, посмотрите CacheDefaultExpire

Есть ли способ настроить ключ кеша

URL-адрес используется для создания ключа, но вы можете частично настроить, какие части URL-адреса используются, проверьте CacheIgnoreQueryString, CacheIgnoreURLSessionIdentifiers

т.е. какие данные делают запрос уникальным

https://httpd.apache.org/docs/2.4/mod/mod_cache.html#cacheenable

Директива CacheEnable указывает mod_cache кэшировать URL-адреса в или ниже URL-строки

Обратите внимание, что не все запросы могут быть кэшированы, там много правил

Что если сервер не может получить ответ? Можно ли настроить его для обслуживания старого объекта

Вам нужно CacheStaleOnError

https://httpd.apache.org/docs/2.4/mod/mod_cache.html#cachestaleonerror

Когда директива CacheStaleOnError включена и когда устарела данные доступны в кеше, кеш ответит на 5хх ответы от бэкэнда, возвращая устаревшие данные вместо 5xx ответ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...