Home Backend Development PHP Tutorial Detailed explanation of the advantages and code examples of PHP web page caching technology

Detailed explanation of the advantages and code examples of PHP web page caching technology

Aug 01, 2020 pm 04:25 PM
php caching technology Web page

Detailed explanation of the advantages and code examples of PHP web page caching technology

Static front-end: parse the dynamic page and save it as a static page

File cache: save the query result as a file, XML

Memory cache :memcache

php cache: It can be used to store data in various formats, including images, videos, files, and database search results. Simply put, the data is called into the memory and then read from the memory, thus greatly improving the reading speed. Memcache is a project of danga. It was first served by LiveJournal. It was originally developed to speed up LiveJournal access and was later adopted by many large websites. Memcached runs in one or more servers as a daemon and will receive client connections and operations at any time.

XCache is an open source opcode cache/optimizer, which means it can improve the performance of PHP on your server. It avoids repeated compilation processes by buffering the compiled PHP data into shared memory. Ability to directly use buffered compiled code to increase speed. Typically increases your page generation rate by 2 to 5 times, reducing server load.

************** *************************************************** *************************************************** ************************************

1. Universal caching technology :

Data cache: The data cache mentioned here refers to the database query PHP cache mechanism. Every time a page is accessed, it will first detect whether the corresponding cached data exists. If it does not exist, connect The database obtains the data and serializes the query results and saves them to the file. In the future, the same query results are obtained directly from the cache table or file.

The most widely used example is the search function of Discuz, which caches the result ID into a table and searches the cache table first when searching for the same keyword next time.

As a common method, when multiple tables are associated, the contents in the attached table are generated into an array and saved in a field of the main table. When necessary, the array is decomposed. The advantage of this is that only one table can be read. , the disadvantage is that there will be many more steps to synchronize the two data. The database is always the bottleneck. Trading the hard disk for speed is the key point of this.

2. Page cache:

Every time you access a page, it will first detect whether the corresponding cached page file exists. If it does not exist, connect to the database and get Data, display the page and generate a cache page file at the same time, so that the page file will be effective the next time you visit. (Template engines and some common PHP caching mechanism classes on the Internet usually have this function)

3. Time-triggered caching:

Check whether the file exists and the timestamp is less than the setting The expiration time, if the file modification timestamp is greater than the current timestamp minus the expiration timestamp, then use the cache, otherwise update the cache.

4. Content-triggered caching:

When data is inserted or updated, the PHP cache mechanism is forced to be updated.

5. Static cache:

The static cache mentioned here refers to static, which directly generates text files such as HTML or XML, and regenerates them when there are updates. , suitable for pages that don’t change much, so I won’t talk about it here.

The above content is a code-level solution. I directly CP other frameworks and am too lazy to change them. The content is similar, it is easy to do, and can be used in several ways, but the following content is for the server End-end caching solution, non-code level, requires the cooperation of multiple parties to achieve

6. Memory cache:

Memcached is a high-performance, distributed memory Object PHP caching mechanism system is used to reduce database load and improve access speed in dynamic applications.

7. PHP buffer:

There are eaccelerator, apc, phpa, xcache, I won’t talk about these, just search a bunch of them yourself. Look, it’s OK if you know that this thing exists

8. MYSQL cache:

This is also considered non-code level. Classic databases use this method. Look at the running time below, 0.09xxx and the like

9. Web cache based on reverse proxy:

Such as Nginx, SQUID, mod_proxy (apache2 and above are divided into For mod_proxy and mod_cache)

10. DNS polling:

 
BIND is an open source DNS server software. This is a big deal to say. , search for it yourself, just know that this thing exists.


I know that some large websites such as chinacache do this. To put it simply, it is multi-server. The same page or file is cached on different servers, and the relevant pages are automatically parsed according to the north and south. in the server.

PHP web page caching example

  • ob_start():页面缓存开始的标志,此函数一下的内容直至ob_end_flush()或者ob_end_clean()都保存在页面缓存中;
  • ob_get_contents():用来获取页面缓存中的内容,获取到以后呢,我们就可以想怎么处理这些内容都行了,过滤字段啦,匹配内容啦,都可以~~~ :)
  • ob_end_flush():表示页面缓存结束。并且经我验证,缓存的内容将输出到当前页面上,也就是可以显示缓存内容。

用此三个php函数,就可以实现强大的功能。如果数据库查询量较大,可以用cache来解决这个问题。

首先,设定过期时间,如果要求缓存文件2个小时过期,就可以设定cache_time为3600*2;通过filectime()来获取缓存文件的创建时间(或 filemtime()获取修改时间),如果当前时间跟文件的创建时间超过限定的过期时间,就可以通过上面三个函数,首先从数据库中取出数据,然后开始缓存ob_start(),然后把要生成的页面的html代码写在缓存中,缓存结束后通过ob_get_contents()获取到缓存的内容,然后通过fwrite把缓存内容写到静态页面html。

如果未过期,直接读取cache中的静态页面即可,避免了大量的数据库访问。

<?php
$_time =10;
$dir="D:\\php\\";
 
function cache_start($_time, $dir)
{
 $cachefile = $dir.&#39;/&#39;.sha1($_SERVER[&#39;REQUEST_URI&#39;]).&#39;.html&#39;;
 $cachetime = $_time;
 ob_start();
 if(file_exists($cachefile) && (time()-filemtime($cachefile) < $cachetime))
 {
  include($cachefile);
  ob_end_flush();
  exit;
 }
}
 
function cache_end($dir)
{
 $cachefile = $dir.&#39;/&#39;.sha1($_SERVER[&#39;REQUEST_URI&#39;]).&#39;.html&#39;;
 $fp = fopen($cachefile, &#39;w&#39;);
 fwrite($fp, ob_get_contents());
 fclose($fp);
 ob_end_flush();
}
 
cache_start($_time, $dir);
//以下是输出的内容,放在cache_start和cache_end两个方法之间
for ($i=0;$i<5;$i++)
{
 echo $i;
 sleep(1);
}
cache_end($dir);
?>
Copy after login

相关学习推荐:PHP编程从入门到精通

The above is the detailed content of Detailed explanation of the advantages and code examples of PHP web page caching technology. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
1 months ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

Discuss CakePHP Discuss CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP is an open-source framework for PHP. It is intended to make developing, deploying and maintaining applications much easier. CakePHP is based on a MVC-like architecture that is both powerful and easy to grasp. Models, Views, and Controllers gu

CakePHP File upload CakePHP File upload Sep 10, 2024 pm 05:27 PM

To work on file upload we are going to use the form helper. Here, is an example for file upload.

How To Set Up Visual Studio Code (VS Code) for PHP Development How To Set Up Visual Studio Code (VS Code) for PHP Development Dec 20, 2024 am 11:31 AM

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

How do you parse and process HTML/XML in PHP? How do you parse and process HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

CakePHP Quick Guide CakePHP Quick Guide Sep 10, 2024 pm 05:27 PM

CakePHP is an open source MVC framework. It makes developing, deploying and maintaining applications much easier. CakePHP has a number of libraries to reduce the overload of most common tasks.

PHP Program to Count Vowels in a String PHP Program to Count Vowels in a String Feb 07, 2025 pm 12:12 PM

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Apr 05, 2025 am 12:04 AM

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

See all articles