キャッシュを入れる判断基準として妥当なのはどれですか。
更新が少なく、参照が多く、多少古くても困らないものに入れます。難しいのは入れる側ではなく捨てる側です。TTL で自動失効させるのが最も安全で、事故が起きにくくなります。
面接官が見ているのは場当たりにキャッシュしない感覚があるか。
よくある答えと、面談でどう見られるか
- 更新頻度が低く、参照が多く、多少古くても許容できるもの
その通りです。逆に常に最新であるべきものには入れません。 - 表示が遅いページはとりあえず全部
まず何が遅いかを特定してからです。 - ユーザーごとに違うデータほど効果が高い
逆です。ユーザーごとに違うとキャッシュが共有されず効果が薄い上、 キーを間違えると他人のデータが見える事故になります。 - 書き込みが多いテーブルほど効果が高い
破棄が頻繁になり、効果が出ません。
模範解答
「更新が少なく・参照が多く・多少古くても困らない」ものに入れます。マスタデータや、集計に時間がかかるが即時性が要らない数値などです。
入れるより捨てる方が難しい点に注意してください。TTL で自動失効させるのが一番安全で、即時反映が必要なものだけ更新時に Cache::forget() を呼びます。更新経路が複数あると破棄漏れが起きます。