Home  >  Article  >  Backend Development  >  PHP apc cache and comparison with redis

PHP apc cache and comparison with redis

WBOY
WBOYOriginal
2016-08-08 09:19:381438browse
APC IntroductionAPC’s full name is Alternative PHP Cache, which is an open source PHP plug-in used to cache PHP code or user data. APC The caching of PHP code apc can remove the time of PHP dynamic parsing and compilation, and PHP scripts can be executed faster. The picture below illustrates well why apc can make php scripts run faster.
PHP is a dynamic scripting language, so in order for users to see the page content in the browser, the server must parse the php code to generate the desired html code. As can be seen from the above figure, when there is no APC, every time the user requests a PHP page, the server needs to parse, compile and execute PHP. However, many times, as long as the PHP code does not change, PHP's The execution logic will not change, which means that the process of parsing and compilation can be omitted, just execute it directly and return the result. This is the job of APC. APC caches the executable code of PHP, thus eliminating the parsing and compilation process and speeding up the execution of PHP scripts. APC Caching of user data and In addition to caching PHP code, apc can also cache user data. However, since the capacity of apc is very small, it is best to cache data that does not change for a long time. The units should be in celestial units. So if the data changes frequently and the amount of data is relatively large, then don't use apc. You can use memcache or redis. The following is a comparative test experiment between apc and redis to see the efficiency comparison between apc and redis.
function getTimeStamp() {
  $timestr = microtime();
  $timestrary = explode(' ', $timestr);
  $result = intval($timestrary[1])*1000 + intval(floatval($timestrary[0])*1000);
  return $result;
} 
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$key = 'key';
$value ='value';
$redis->set($key, $value);
  
apc_store($key, $value, 1); 
  
$begin = getTimeStamp();
for($i = 0 ; $i < 100000 ; $i = $i +1) {
  $result = apc_fetch($key);
} 
$cost = getTimeStamp() - $begin;
var_dump($cost);
$begin = getTimeStamp();
for($i = 0 ; $i < 100000 ; $i = $i +1) {
  $result = $redis->get($key);
} 
$cost = getTimeStamp() - $begin;
var_dump($cost);
$redis->close();
  

are all simple data retrieval operations, performed 100,000 times each, in milliseconds. The final running result is that redis reads 100,000 times in 4-5 seconds, while apc reads 100,000 times in about 50 milliseconds. It can be seen that if you simply cache some data, and if the data does not change and hits, apc can still bring about a certain efficiency improvement. When installing apc, there will be an apc.php page through which you can view apc hits. As shown below
APC configurationThe configuration example is as follows:
extension= apc.so 
apc.enabled=1
apc.shm_segments=1 
apc.shm_size=64M ; apc内存的大小,最后的大小需要乘上segments的数量,所以这里一共为apc分配64M 
apc.ttl=7200 
apc.user_ttl=7200
apc.enable_cli=1 ; 这个如果不开启,则只可以在网页上进行apc操作,不能通过cli进行apc操作

Referencehttp://www.inmotionhosting.com/support/website/what-is/speed-up-php -with-apc http://bbs.phpchina.com/thread-202432-1-1.html

Copyright Statement: This article is an original article by the blogger and may not be reproduced without the blogger's permission.

The above introduces the PHP apc cache and the comparison with redis, including the content. I hope it will be helpful to friends who are interested in PHP tutorials.

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
Previous article:log4php installationNext article:log4php installation