Top / PEAR / Cache_Lite


 #setlinebreak(on)
 * PEAR::Cache_Lite [#c2413822]
 #htmlinsert(googleAdsense.html)
 #ref(http://dozo.rgr.jp/img/img20_file.png,right,nolink,around,PHP::PEAR)
 
 ご利用は計画的に!!
 
 (ノ・・)ン。。。。。。(((●コロコロッ
 
 
 これはいいね。
 使いやすい。
 っていうかもっと早く使えば良かった。
 (T_T)
 
 
 キャッシュとは取得したデータなどを一時的に近くの場所に保存しておき、
 それを再利用することでデータを取りに行く時間を短縮する技術。
 これを自前で創るのは結構面倒なことが多いんだけど、
 [[PEAR::Cache_Lite:http://pear.php.net/package/Cache_Lite]]
 http://pear.php.net/package/Cache_Lite
 を使えばさくっとやってくれる。
 
 
 使用できるパラメータは
     'cacheDir' => '/tmp/',
     'caching' => true,
     'lifeTime' => 3600,
     'fileLocking' => true,
     'writeControl' => true,
     'readControl' => true,
     'readControlType' => 'crc32',   // crc32, md5, strlen
     'pearErrorMode' => CACHE_LITE_ERROR_RETURN,
     'memoryCaching' => false,
     'onlyMemoryCaching' => false,
     'memoryCachingLimit' => 1000,
     'fileNameProtection' => true,
     'automaticSerialization' => true,
     'automaticCleaningFactor' => 1,
     'hashedDirectoryLevel' => 1
 な感じ。
 
 バイナリファイルのキャッシング。
 キャッシュデータの階層保存。
 ガーベージコレクション。
 ファイルのロック。
 などなどキャッシュ処理を自前で創ったときに頭を抱えたくなる内容が、
 パラメータをペチペチいじるだけでOK.
 
 
 なかには危険なにおいが漂ってくる様なものまである。
 長期運用を考えるなら安全確実なものを選ばないと。
 
 
  
 ソースコードはこんな感じ
  // Include the package
  require_once('Cache/Lite.php');
  
  // Set a id for this cache
  $id = '123';
  
  // Set a few options
  $options = array(
      'cacheDir' => '/tmp/',
      'caching' => true,
  );
  
  // Create a Cache_Lite object
  $Cache_Lite = new Cache_Lite($options); 
  
  $input_data = "あいうえお";
  echo "input data : ".$input_data;
  
  // Test if thereis a valide cache for this id
  if ($data = $Cache_Lite->get($id)) {
      echo "<br />get is true :".$data;
  } 
  else 
  { // No valid cache found (you have to make the page)
     echo "input data : ".$input_data."<br />"; 
     echo "get is false :".$data;
     $Cache_Lite->save($input_data);
  }
 
 たったこのぐらいで高度なキャッシュ機能が備わるなら使わない手はない!!
 
 
 
 ハマリどころ二つ
 ・書き込むファイルはバイナリなのだが、どうも日本語を書き込むとデータが抹殺されるっぽい。
 テキストで書き込むようにして回避。
 ・キーワードを文字列にしつつディレクトリ階層を1以上にしていると、
 なぜかうまくディレクトリを作成してくれない。
 意図的にディレクトリ作成を作成することで回避。
 その他情報あったらちょうだい!!
 -<a href="http:///phorumz.com/?mforum=freeringtones">free ringtones</a>http://phorumz.com/?mforum=freeringtonesfree ringtones -- [[free ringtones]] &new{2007-02-17 20:40:26 (土)};
 
 #comment
 
 


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Third Project
証券会社ランキング比較