I have divided the current PHP Cache into these four mechanisms. The first method requires loading modules, which may be paid, such as those from ZEND company, which may be free, but I won’t discuss it too much; the second method, such as It is more suitable to use on mature and large sites; the third method and the fourth method are currently more popular methods in the PHP industry.
Divided into 3 categories
1. Cache module
This is a cache setting made on the server, such as Zend's Cache product, etc. The main principle is to compile the PHP code file once and save it in the memory, thereby speeding up access by reducing I/O operations, which will not be discussed in this article. Within range
2.HTML method
Maybe you say that the way PHP generates HTML is not within the scope of this article, but I personally think that this method is still a Cache method. For example, there are many popular programs for generating HTML, such as some domestic CMSs. It is not within the scope of this article and will be briefly mentioned.
3. Generate Cache file
This is to save some commonly used quantities that do not change frequently in text to speed up program execution by reducing the amount of mysql queries. We will introduce the detailed content later
4.php caching mechanism
For example, the caching mechanism in the smarty template, such as the caching mechanism currently used by the Discuz! forum, will be discussed in detail later
Take Discuz! forum software version 5.0 (perhaps you said why you use Discuz! as an example instead of PhpWind or CMS as an example, mainly because of the comparison between Discuz! and the latter two caching mechanisms I want to talk about) Well, other software products are more or less not suitable for the requirements of this article) For example, in the third mechanism, Discuz! saves basic settings and commonly used variables in a file under the forumdata/cache folder. For example, cache_settings.php saves the data in the forum settings in an array and stores it in this file. When these variables are needed, these variables are used by including this file; in the fourth mechanism, Discuz! is to use templates The template file in /default is pre-compiled. That is, when requesting access to the index.php file, the program first checks whether the pre-compiled file has been generated in forumdata/templates. If it exists, it will be included. If not, it will be in the template folder. Find the template, generate it, and then include it, such a process
Under this processing mechanism, there will obviously be a lot of waste in the case of small load and small sites, but in the specific implementation of medium-sized sites or large and very large sites, the performance is excellent, but obviously for forums It seems that the load is relatively large, there are a lot of domestic water forums
Let’s take a look at the Phpwind forum. As the only forum system worth mentioning in the domestic PHP forum under the pressure of Discuz!, it is obvious that the caching mechanism is not handled very well. PW seems to have started as a text forum before. , the same text puts a lot of pressure on I/O, especially in load balancing of large and medium-sized sites
As I write this, I suddenly don’t want to write anymore. I originally wanted to thank you for the application of caching and templates in plug-in development, and then I suddenly thought of writing some of my personal understanding of the current PHP caching mechanism. I have written this twice. , shitty server, my mother’s MYSQL always loses timeout, your mother, the server configuration is a bit level and good, damn, I won’t write anymore