キャッシュ by you.

最近、どんどんWebサービスの世界に引き込まれている今日この頃。

ようやくキャッシュさせなきゃと思って調べたPear::Cache_Lite。ちょうどCORESERVER.JP にもインストール済みというのを確認したので、実験用ソースを作成し設置して速度感も体験してみました。

Amazonのキャッシュとその努力と涙の結果出力テスト

やはりキャッシュしたほうが表示が速いし、こちらのレンタルサーバーAmazonさんにも負荷をかけなくてWin-Winの関係(?)で使えそうです。

当然Webサービスを利用するときは利用制限回数とか負荷をかけないようにする必要があるので、これはぜひとも実装したいです。

さて、参考にさせてもらったサイトは以下2サイト。

PHPで指折りに便利なfile_get_contents関数を使いこなす (後編) – ホリデープログラミング入門 – Yahoo!ブログ

Cache_Lite でデータをキャッシュする – bnote

基本的にどちらも同じことを書いているのですが、上記を元にサンプルソースを作成しました。

今、表示されているデータがキャッシュされて表示されたものか、そうでないかわかるように、それを表示するようにしています。

UTF-8で適当な名前をつけて保存してサーバーにアップします(XAMPP等でローカル環境で実行しても良い。ボクはそれでテストしてからレンタルサーバーにアップしています)。

アップした階層に「tmp」フォルダを作成し、パーミッションを707に設定(Windowsローカルの場合はフォルダプロパティの読み取り専用チェックをはずす)。

それで実行すると1度目はAmazonからデータを取得して表示します。ちょっと反応が鈍いように感じます。

その直後もう一回リロードすると、今度は素早いです。「キャッシュからだ!」と表示されるのでキャッシュからの表示は素早いことが確認できます。このときはAmazon側にデータをリクエストしていません。先ほど作成した「tmp」フォルダにキャッシュされたデータが格納されています。

1分ほどしてからリロードするとキャッシュの有効期限が切れているので、再度Amazonからデータを取得してデータを表示します。やっぱり、このとき少し遅いと感じるし、Amazonのサーバーに負荷をかけていることがわかります。

ちょっと使いこなせるように頑張ってみたいです。

ちなみに検索している内容はミュージックの中で「CCB」です。日本語エンコードが面倒だったので、アルファベットのアーティストが「CCB」しか思い浮かばなかったボクは、相当ヤバイです・・・。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です