2016-06-28 web
動的サイトを作っているんだけど、転送量とDB負荷をなるべく減らすために以下のような二段階キャッシュを考えている。
【ブラウザ】 ↓↑ Cache-Control: max-age=60 … ① ETag: abc123fff … ② ↓↑ 【webサーバ】 ↓↑ DB検索結果をシリアライズしたファイルキャッシュ … ③ ↓↑ 【DBサーバ】
①、② はクライアントキャッシュしてもらうためのヘッダ。②の ETag はDB検索結果の md5 や sha1 を想定。
①、②だけでも転送量がかなり抑えられて良いんだけど、②の ETag を生成するのにどうしてもDBアクセスが必須になる。
なので、③のように検索結果をシリアライズしてwebサーバにファイルとして抱えておけば DB アクセスが発生しないから負荷も抑えられそう。
ということでいろいろ実験中。