2012-12-14 twitter
twitterの片思いとかとるやつ 作ったときの工夫について。
アクセス都度 Twitter API 叩きに行くのはバカらしいから、ログインと同時に以下の情報だけ API 叩いてセッションにキャッシュしてる。
これで、セッション参照して比較するだけで以下情報が取れる。
screen_name 一覧も、初回だけAPIアクセスして、結果キャッシュするようにしてる。
各 user_id 一覧や screen_name 一覧 ってこういう配列で持たせてるんだけど、
セッションに格納する場合はシリアライズされて以下みたいな文字列になる。
これ、user_id が1000個とかになると結構容量食うから、配列→文字列に変換してる(user_id も screen_name も仕様上は「,」が含まれないから大丈夫)
シリアライズするとサイズが約半分に。
仕上げは gzdeflate 使って圧縮。以下サンプル。
なんでこんなことしてるかっつうと、appfogの無料プランってストレージやメモリに余裕がないから、削れるところは削ろうっていう考えから。
つっても、ディフォルトのセッションハンドラだと gzdeflate はできないから、独自にセッションハンドラ作んないとだめ。前のエントリ参照。