There are four acceleration and caching extensions in PHP: eAccelerator, memcached, xcache, and APC. Let’s introduce their differences to you, let’s take a look!
Friends who are tossing VPS, after installing LNMP and other web operating environments, will choose to install some cache extensions to improve the running speed of PHP. The cache extensions that are often introduced include eAccelerator, memcached, xcache, and Alternative PHP Cache. They are What are the differences between them? What are the functions of each? How do we choose? This is the answer given in this article.
1. eAccelerator
eAccelerator is a free and open source PHP accelerator that optimizes and dynamic content caching, improves the caching performance of PHP scripts, and almost completely eliminates the server overhead of PHP scripts in the compiled state. It also optimizes scripts to speed up their execution efficiency. Improve PHP program code execution efficiency by 1-10 times. It can be understood from the text: eAccelerator is a PHP accelerator extension.
2. memcached
Memcached is a high-performance distributed memory object caching system used in dynamic web applications to reduce database load. It delivers the speed of dynamic, database-driven websites by caching data and objects in memory to reduce the number of database reads. From the text, it can be understood as: memory cache extension, and it is mostly used for cluster servers. It is mainly used for distributed cache and is regarded as database cache.
3. Alternative PHP Cache (APC cache)
Alternative PHP Cache (APC cache) is an open source cache tool effective for PHP. It can cache the PHP intermediate code of Opcode (target file). APC's cache is divided into two parts: system cache and user data cache. The system cache is used automatically. It means that APC caches the compilation results of the PHP file source code, and then compares the time stamp when calling again. If not expired, the cached code is used to run. The default cache is 3600s (one hour). However, this still wastes a lot of CPU time. Therefore, you can set the system cache in php.ini to never expire (apc.ttl=0). However, if it is set like this, it will be required after running the PHP code. Restart your web server (such as apache...). The current performance test of APC generally refers to this layer of cache; from a literal perspective: Alternative PHP Cache (APC cache) can also be regarded as a memory cache extension and a database. Cache extension.
4. Use buffered compiled code to increase speed. This can typically increase your page generation rate by a factor of 2 to 5 and reduce server load. In fact, it is a PHP accelerator extension like eAccelerator.
The above are their functions and differences. To put it simply: eAccelerator and xcache are PHP cache extensions, while memcached and APC cache are database cache extensions. Generally, you only need to install one of them, don’t be greedy for too much. In addition, actual testing found that when the number of caches exceeds a certain threshold, APC's performance is not as good as Memcache. Therefore, when it comes to the choice of extensions, I usually choose the combination of xcache+memcached.
The above has introduced the differences and functions of acceleration and cache extensions in PHP, including a detailed explanation of eAccelerator, memcached, xcache, and APC, including relevant content. I hope it will be helpful to friends who are interested in PHP tutorials.