July Tech Festa 2018 (https://2018.techfesta.jp/)

こんにちは! プロダクトマネージャーをしている奥原 (@okutaku0507) です。前までサーバーサイドのリードエンジニアをしていました。 delyの開発ブログが長らく更新されておらず、不甲斐ないです。これからは活発にdelyが取り入れている最新技術や実際にあった事例、取り入れているアーキテクチャなどを中心に発信していきたいと思っています。 久しぶりの今回は、delyが運営/開発しているレシピ動画サービスであるkurashiruの涙あり、笑いありのキャッシュ戦略について歴史と実際の事例を元に書いていきたいと考えています。最後には、僕が作成したクラシルに用いられているキャッシュ戦略をgemにしたライブラリを紹介いたします。 はじめに サーバーサイドチームはクラシルの開発から1年半程度まで、主に僕一人しかいませんでした。TVCMによる急激なユーザー数増加や新機能開発、社員100人を支える管
ネットワーク越しにWebサイトを表示するとなった場合、表示の高速化にはキャッシュ戦略は外すことができません。 といってもWebViewの場合、裏側にいるWebKitがキャッシュ処理を行ってくれるのでそれほど独自で実装する事は無いかもしれません。 ◯WebViewのキャッ...
こうして見ると、仮に5分程度ライムラグがあってもさほど影響が無いものが多い、つまり毎度APIに問い合わせるのが無駄とも言えないでしょうか。(毎度通信すべきはなのは、上の表では「高」の部分のみ)。 そこで、APIから取ってきたデータ(XML)を少しの時間だけとっておくのはどうでしょう?(リアルタイム性が高いものや検索結果については毎度通信し、それ以外のものはキープしておき再利用)アクセスしてきたAさん、Bさん、Cさん・・・誰が見ても同じ内容ならなおさらみんなでシェアできれば、通信の数もそれにかかる時間も減るはずです。 このように一定時間データを溜めて再利用するシステムや行為を、キャッシュ(cache ※1)といいます。 どんな言語でも、こんな流れのロジックが書ければ実現できるでしょう。 if ( とっておいたXMLが賞味期限切れ ) { 捨てる; } if ( とっておいたXMLがある )
Railsに限った話ではないが、Webアプリケーションのパフォーマンスにおいてキャッシュを用いることは多々ある。最近ではmemcachedを利用することが多いが、キャッシュしずらいデータもある。それはログイン後のデータなどユーザごとに異なる情報を表示するケースだ。 ESIタグの内容を実行して表示する via 「Railsの画面生成を10倍高速化する方法」をESIで実装する [ Gatherup ] ユーザごとに情報が異なる場合、キャッシュを活用するのは難しい。それを解決してくれるのがESIと呼ばれる仕組みだ。 今回紹介するオープンソース・ソフトウェアはMongrel-ESI、Mongrelを使ったESI実装だ。 Mongrel-ESIは通常のキャッシングと異なり、動的なページに対しても有効なキャッシングを提供する。SSIのようにページに特定のタグを埋め込む形でWebサーバの出力を最後に変換
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く