Я ищу способ автоматически обновлять записи в моем кеше, если срок его действия истекает.
Например, example.com имеет TTL 60, я хотел бы автоматически обновлять его, если он истекает, чтобы при запросе пользователем example.com свежая версия уже была в кеше.
Возможно ли это внутри привязки?
Спасибо!
BIND
поддерживает технику, называемую prefetch
. Использование предварительной выборки BIND автоматически обновит записи, срок действия которых скоро истечет. Ниже приводится синтаксис предварительной выборки.
sudo vim /etc/bind/named.conf.options
...
options {
...
prefetch 2 9;
};
...
Как видите, здесь два числа: trigger
(здесь 2), а eligibility
(здесь 9). Это указывает BIND обновлять записи DNS для всех записей, у которых начальный TTL был больше 9 секунд, если оставшийся TTL упал ниже 2 секунд. Таким образом, он не будет слепо обновлять все записи, вместо этого он будет отслеживать только те записи, у которых начальный TTL больше, чем допустимость, и как только оставшийся TTL для этих записей упадет ниже значения триггера, он обновит их. Значения права на участие и триггера указаны в секундах.
Итак, предположим, что у example.com TTL составляет 60 секунд (т.е. TTL, когда запись была извлечена), я хочу убедиться, что если оставшийся TTL упадет ниже 10 секунд, запись должна быть обновлена. Следующее будет моей опцией предварительной выборки в файле конфигурации.
prefetch 10 60
Дальнейшее чтение: https://kb.isc.org/article/AA-01122/0
Нет, нет. Кэш предназначен для автоматической «записи» записей при первом обращении к ним для более быстрого доступа в дальнейшем. Нет никакого прироста производительности для записей с «предварительным кэшированием», как вы описываете.