Home  >  Article  >  Backend Development  >  How does php use memory as cache?

How does php use memory as cache?

*文
*文Original
2017-12-25 13:44:545363browse

This article mainly introduces how PHP uses memory as a cache implementation method, analyzes the usage of Memcached cache, and compares the usage of APC, EC, and Zend accelerators. Friends in need can refer to it.

The details are as follows:

Cache in PHP is divided into many types, such as memory cache, file cache and page cache. This article is going to talk about some methods of memory caching in php. Here we will introduce the Memcached cache and the APC caching method that comes with php.

1.Memcached cache.

memcached is a high-performance distributed memory cache server. It caches database query results and reduces the number of database accesses to improve the speed of dynamic web applications. Memcached uses the "Key=>Value" method. Organizing data allows multiple users on different hosts to access this cache system at the same time. It is generally used for large websites. Memcached uses memory to cache data, so it is volatile. When the server is restarted or the memcached process is terminated, the data will be lost. Lost, so memcached cannot be used to persist data.

Anyone who has used php_memcache will think that PHP memory cache is a very complicated thing. In fact, memcached is an efficient and fast distributed memory object caching system. Used to accelerate WEB dynamic applications.

Here is the configuration and use of memcached under WIN32.

1. Configuration of PHP memory cache, WIN32 environment

1. Download php_memcache.rar

Unzip the compressed package: php_memcache.rar

php_memcache.rar The main files included in the compressed package are:

/memcached-1.2.1-win32/ memcached.exe

/php_memcache/php_memcache.dll

2. Open the command prompt, point to the path where memcached.exe is located, and run memcached.exe -d start.

3. Copy the php_memcache.dll file to the folder of the PHP dynamic file library.

4. Add a line extension=php_memcache.dll to the php.ini file.

5. Restart Apache, and then check phpinfo. If there is memcache, it means the installation is successful!

Example, the code is as follows:

<?php 
//包含 memcached 类文件 
require_once(&#39;memcached-client.php&#39;); 
 
//选项设置 
$options = array( 
 &#39;servers&#39; => array(&#39;www.jb51.net:11211&#39;),//memcached 服务的地址、端口 
 &#39;debug&#39; => true,//是否打开debug 
 &#39;compress_threshold&#39; => 10240,//超过多少字节的数据时进行压缩 
 &#39;persistant&#39; => false//是否使用持久连接 
 ); 
 
//实例化memcached对象 
$memcached = new memcached($options); 
 
$sql = &#39;SELECT * FROM table1&#39;; 
$key = md5($sql); 
 
//如果在memcached中没有缓存数据,把缓存数据写入memcached 
if(!($datas = $memcached->get($key))) 
{ 
 $conn = mysql_connect(&#39;localhost&#39;, &#39;hxsd&#39;, &#39;123456&#39;); 
 mysql_select_db(&#39;hxsd&#39;); 
 $result = mysql_query($sql); 
 while($row = mysql_fetch_object($result)) 
 { 
  $datas[] = $row; 
 } 
 //将数据库中获取到的结果集数据保存到 memcached 中,以供下次访问时使用。 
 $memcached->add($key, $datas); 
} 
else 
{ 
 //直接使用memcached中的缓存数据$datas 
} 
?>


Memory cache two, comparison of APC, EC, Zend accelerator

1, APC

APC, the full name is Alternative PHP Cache, the official translation is called "Optional PHP Cache", the homepage is http://pecl.php.net/package/apc, the php help manual page: http://cn.php .net/apc

APC is an optimizer. From the day of installation, it has silently served your PHP application in the background. All your PHP codes will be cached for php opcode.

In addition, APC can provide a certain memory cache function. However, this function is not perfect. There are reports that frequent use of the APC cache write function will lead to unpredictable errors. If you want to use this function, you can Take a look at apc_fetch, apc_store and several other functions related to apc cache.

Installation, the code is as follows:

# pecl install APC

Configuration:/etc/php.inc, the code is as follows:

extension=apc.so

[apc]

apc.enabled = 1 
apc.shm_segments = 1 
apc.shm_size = 30 
apc.optimization = 0 
apc.ttl = 7200 
apc.user_ttl = 7200 
apc.num_files_hint = 1000 
apc.mmap_file_mask = /tmp/apc.XXXXXX

Related recommendations:

PHP memcache application example display on WeChat public platform

PHP caching mechanism

php caching technology example_PHP tutorial

The above is the detailed content of How does php use memory as cache?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
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