キャッシュの有効期限が切れた場合に、キャッシュ内のエントリを自動的に更新する方法を探しています。
たとえば、example.com の TTL は 60 ですが、期限が切れた場合は自動的に更新して、ユーザーが example.com をクエリしたときに新しいバージョンがすでにキャッシュ内にあるようにしたいと考えています。
これはバインド内で可能ですか?
ありがとう!
答え1
BIND
と呼ばれる技術をサポートしていますprefetch
。prefetch を使用すると、BIND は期限切れになりそうなエントリを自動的に更新します。以下は prefetch の構文です。
sudo vim /etc/bind/named.conf.options
...
options {
...
prefetch 2 9;
};
...
ご覧のとおり、これには 2 つの数字trigger
(ここでは 2) と 9 eligibility
(ここでは 9) があります。これは、残りの TTL が 2 秒を下回った場合に、初期 TTL が 9 秒を超えていたすべてのエントリの DNS エントリを更新するように BIND に指示します。したがって、すべてのエントリが盲目的に更新されるのではなく、初期 TTL が eligibility より大きいエントリのみを監視し、これらのエントリの残りの TTL がトリガー値を下回ったときに更新されます。eligibility と trigger の値は秒単位です。
たとえば、example.com の TTL が 60 秒 (つまり、レコードが取得されたときの TTL) であるとします。残りの TTL が 10 秒を下回った場合にエントリが更新されるようにします。以下は、構成ファイルのプリフェッチ オプションです。
prefetch 10 60
答え2
いいえ、ありません。キャッシュは、後でより速くアクセスできるように、エントリが初めてアクセスされたときに自動的に「記録」するように設計されています。説明されているようにエントリを「事前にキャッシュ」しても、パフォーマンスは向上しません。