PHP has made great progress in recent years due to its power and scalability. Compared with traditional ASP websites, PHP has an absolute advantage in speed. If you want to transfer 60,000 pieces of data to mssql, PHP takes 40 seconds, and ASP is no less than 2 Minutes. However, as the website has more and more data, we are eager to call the data faster. We do not need to delete it from the database every time. We can get it from other places, such as a file or a certain memory address. This is PHP's caching technology is Cache technology.
In-depth analysis
Generally speaking, the purpose of caching is to put data in one place to make access faster. There is no doubt that memory is the fastest, but, Can hundreds of M of data be stored in the internal memory? This is unrealistic. Of course, sometimes it is temporarily placed in the server cache. For example, if the ob_start() cache page is turned on, the page content will be cached in the memory before sending the file header. You know Wait for the page output to be automatically cleared or wait for the return of ob_get_contents, or be cleared by ob_end_clean display. This can be well utilized in the generation of static pages and can be well reflected in templates.
In addition, there is an object application in ASP that can save public parameters. This is also considered a cache, but in PHP, I have not seen developers produce such an object. Indeed, it is not necessary. ASP .NET's page caching technology uses viewstate, and cache is file association (not necessarily accurate). When the file is modified, the cache is updated. If the file is not modified and does not time out (note 1), the cache is read and the result is returned. , this is the idea, look at this source code:
if (!@IS_DIR ($ Cache_diRNAME)) {
if (!@mkdir ($ cache_dirname, 0777)) {
$ This- & gt; warn (cache file does not Exists and cannot be created, it needs to be created manually.);
(){
echo Cache class bye.;
}
function get_url() {
if (!isset($_SERVER[REQUEST_URI])) { _SERVER[REQUEST_URI]; $url .= (!emptyempty($_SERVER[QUERY_STRING])) ? . $_SERVER[QUERY_STRING] : ;
echo "An error occurred:< pre>".$errorstring.""; if( !$fso=fopen($pageurl,w)){
return false; 🎜>}
$ this- & gt; warns (unable to write cache files.);;;); //trigger_error
return false;
}
flock($fso,LOCK_UN);//Release lock
function display_cache($cacheFile){
if(!file_exists($cacheFile)){
$this->warn(Cache file cannot be read.);//trigger_error
return false;
}
echo 读取缓存文件:.$cacheFile;
//return unserialize(file_get_contents($cacheFile));
$fso = fopen($cacheFile, r);
$ data = fread($fso, filesize($cacheFile));
fclose($fso);
return $data;
}
http://www.bkjia.com/PHPjc/486128.html
www.bkjia.com
true