PHP のキャッシュ分類データベース キャッシュ、ファイル キャッシュ、およびメモリ キャッシュについて詳しく説明します。詳しく知りたい人は参照してください。
ページキャッシュクラス
コードは次のとおりですコピーコード | <?php *include ( "cache.php" ); | $cache = 新しいキャッシュ(30);
echo date("Y-m-d H:i:s"); -> ;キャッシュ();クラス キャッシュ {
//キャッシュ ディレクトリ
var $cacheRoot = "./cache/";
//キャッシュ更新時間 (秒)、0 はキャッシュなしを意味します
var $cacheLimitTime = 3
//キャッシュ ファイル名
var $ acheFileName = "";
//キャッシュ拡張子名
var $cacheFileExt = "php";
/*
* コンストラクター
* int $cacheLimitTime キャッシュ更新時間
*/
function queue( $cacheLimitTime ) {
if( intval( $cacheLimitTime ) )
/*
* キャッシュファイルを確認 設定された更新時間内かどうか
* Return: 更新時間内であればファイルの内容を返し、それ以外の場合は失敗を返す
*/
functioncacheCheck(){
if( file_exists( $this->cacheFileName ) ) {
$cTime = $this->getFileCreateTime( $this->cacheFileName );
if( $cTime + $this->cacheLimitTime > time() ) {
echo file_get_contents( $this->cacheFileName );
ob_end_flush(); * string $staticFileName 静的ファイル名 (相対パスを含む)
*/
function caching( $staticFileName = "" ){
if( $this ->cacheFileName ) {
$cacheContent = ob_get_contents();
//echo $cacheContent;
If( $staticFileName ) {
saveFile( $staticFileName, $cacheContent )
}
if( $this->cacheLimitTime )
$this->saveFile( $this->cacheFileName, $cacheContent );
}
}
/*
* キャッシュファイルをクリアします
* string $fileName はファイル名を指定します (関数を含む) または all (all)
* 戻り値: クリアが成功した場合は true を返し、それ以外の場合は false を返します
*/
function clearCache( $fileName = "all" ) {
if ( $fileName != "all" ) {
$ filename = $ this-> cacheroot($ filename)。 "。$ this-> cachefileext;$check = is_dir( $file );
true を返す; false を返す
} else{
} ;
}
}
/*
* 現在の動的ファイルに基づいてキャッシュ ファイル名を生成します
*/
関数getCacheFileName() {
return $this->cacheRoot . strtoupper (md5($_SERVER["REQUEST_URI"])).".$this->cacheFileExt
}
/*
* キャッシュ ファイルの作成時間
* string $fileName キャッシュ ファイル名 (相対パスを含む)
* Return: ファイル生成時間 (秒)、ファイルが存在しない場合は 0 を返す
*/
function getFileCreateTime( $fileName ) {
if( ! Trim($fileName) ) ) return 0; return intval(filemtime( $fileName ));
}else return
}
/*
* ファイルを保存します
* string $fileName ファイル名 (相対パスを含む)
* string $text ファイルの内容
* 戻り値: 成功した場合は true を返し、失敗した場合は false を返します
*/
function saveFile($fileName, $text) {
if( ! $fileName || ! $text ) return false;
if( $this-> makeDir( dirname( $fileName ) ) ) {
/*
* ディレクトリを継続的に作成する
* string $dir ディレクトリ文字列
* int $mode 権限番号
* return :正常に作成された場合、またはすべてが作成された場合は true を返しますビルドされている場合、 false を返します
*/
function makeDir( $dir, $mode = "0777" ) {
if( ! $dir ) return 0;
$dir = str_replace( "" "/", $dir ) ; val == ".." || $val == "." トリム( $val ) == "" ) 続行します。if(!@mkdir( $mdir, $mode )){
?&g t;
上記の使用法はページのキャッシュとみなされ、ページにアクセスするたびに、まず対応するキャッシュされたページ ファイルがあるかどうかを確認します。存在しない場合は、データベースに接続してデータを取得し、ページを表示し、同時にキャッシュされたページ ファイルを生成します。これにより、ページ ファイルは次回アクセスされたときに有効になります。 (インターネット上のテンプレート エンジンと一部の一般的なキャッシュ クラスには、通常、この機能があります)
後で、メモリ キャッシュとみなされる Memcache キャッシュについて紹介します
コード
コードは次のとおりです
code
< ?php | $memcache = new Memcache;$memcache->connect('localhost', 11211) or die ("接続できませんでした"); | $version = $memcache-> getVersion();
echo "サーバーのバージョン: ".$version."n";$tmp_object = new stdClass;$tmp_object->str_attr = 'test'; $tmp_object->int_attr = 123; $ memcache->set('key ', $tmp_object, false, 10) or die ("サーバーでのデータの保存に失敗しました"); echo "データをキャッシュに保存します (データは 10 秒で期限切れになります)n"; $get_result = $memcache-> ;get('key'); echo "キャッシュからのデータ:n"; var_dump($get_result); ?>
Memcached は高性能であり、分散メモリ オブジェクト キャッシング システム。データベースの負荷を軽減し、動的アプリケーションでのアクセス速度を向上させるために使用されます。
|
http://www.bkjia.com/PHPjc/444585.htmlwww.bkjia.com
本当
http://www.bkjia.com/PHPjc/444585.html技術記事 PHP のキャッシュ分類データベース キャッシュ、ファイル キャッシュ、およびメモリ キャッシュについて詳しく説明します。詳しく知りたい人は参照してください。 ページ...