キャッシュした内容を、更新されたタイミングで最新にしたい。どうしますか。
時間ベースとオンデマンドの2つです。時間ベースは設定1行で捨て漏れが起きません。即時反映が要るものは、更新処理の中からパスかタグを指定して明示的に作り直します。
面接官が見ているのは再検証の2方式を持っているか。
よくある答えと、面談でどう見られるか
- 時間で切る方法と、更新時に明示的に捨てる方法があり、鮮度要件で使い分ける
両方を持ったうえで基準を言えています。 - 更新処理の中で明示的に再検証する
即時反映が要るならこれです。ただし更新経路が複数あると書き漏れます。 - 一定時間で失効するように設定する
捨て漏れが起きないので運用は安定します。即時性が要らないならこれで十分です。 - キャッシュを使わないようにする
安全ではありますが、設問は「キャッシュした内容を最新にしたい」です。やめる判断もあり得ますが、その前に再検証の手段を知っているかを見られます。
面接官は何を見ているか
- 時間で切る方法を挙げた
- 更新時に明示的に捨てる方法を挙げた
- 使い分けの基準に触れた
模範解答
方法は2つあります。
時間ベースは、一定時間が過ぎたら次のアクセスで作り直す方式です。設定が1行で済み、捨て漏れが起きません。多少古くても困らないデータには、これで十分です。
オンデマンドは、更新処理の中から明示的に「このパス(またはタグ)を捨てる」と指示する方式です。反映は即時になりますが、更新経路すべてに書く必要があります。
使い分けは鮮度要件です。即時反映が要るものだけオンデマンドにして、それ以外は時間ベースで妥協する方が、運用は安定します。
ここからどう深掘りされるか
この問いに答えられた場合、面談は次の質問に進みます。
観点をすべて押さえられた場合
オンデマンド再検証で、パス指定とタグ指定はどう使い分けますか。一部しか触れられなかった場合
キャッシュを入れて、逆に困ることはありますか。触れられなかった場合
キャッシュを入れて、逆に困ることはありますか。