IT-Q

キャッシュした内容を、更新されたタイミングで最新にしたい。どうしますか。

時間ベースとオンデマンドの2つです。時間ベースは設定1行で捨て漏れが起きません。即時反映が要るものは、更新処理の中からパスかタグを指定して明示的に作り直します。

面接官が見ているのは再検証の2方式を持っているか。

よくある答えと、面談でどう見られるか

  • 時間で切る方法と、更新時に明示的に捨てる方法があり、鮮度要件で使い分ける
    両方を持ったうえで基準を言えています。
  • 更新処理の中で明示的に再検証する
    即時反映が要るならこれです。ただし更新経路が複数あると書き漏れます。
  • 一定時間で失効するように設定する
    捨て漏れが起きないので運用は安定します。即時性が要らないならこれで十分です。
  • キャッシュを使わないようにする
    安全ではありますが、設問は「キャッシュした内容を最新にしたい」です。やめる判断もあり得ますが、その前に再検証の手段を知っているかを見られます。

面接官は何を見ているか

  • 時間で切る方法を挙げた
  • 更新時に明示的に捨てる方法を挙げた
  • 使い分けの基準に触れた

模範解答

方法は2つあります。

時間ベースは、一定時間が過ぎたら次のアクセスで作り直す方式です。設定が1行で済み、捨て漏れが起きません。多少古くても困らないデータには、これで十分です。

オンデマンドは、更新処理の中から明示的に「このパス(またはタグ)を捨てる」と指示する方式です。反映は即時になりますが、更新経路すべてに書く必要があります。

使い分けは鮮度要件です。即時反映が要るものだけオンデマンドにして、それ以外は時間ベースで妥協する方が、運用は安定します。

ここからどう深掘りされるか

この問いに答えられた場合、面談は次の質問に進みます。