Home  >  Article  >  Backend Development  >  Detailed explanation of sample code for loading memcache module in PHP (picture)

Detailed explanation of sample code for loading memcache module in PHP (picture)

黄舟
黄舟Original
2017-03-28 09:19:301346browse

memcache

Definition

memcache is a distributed high-speed caching system
is currently used by many websites to improve the access speed of the website, especially for Some large

workflows

1. First check whether the data accessed by the client is in memcache, and if so, return directly
2. If it is not in memcache, check the database, and at the same time Cache a copy to memcache to greatly improve reading speed.

Applications and features

1. Used for web page or database cache
2. Can be used for session sharing
3. Applicable Due to small but large data changes (such as Weibo fans +1)
4. Stored in memory, data cannot be persisted

Cache optimization rules: 28 principles

20% : Hot data, data that is frequently accessed. Used as cache, stored in memory
80%: basically unchanged data, stored in solid state drive

php loads memcache module

Detects the current php environment

vim ~/.bash_profile
PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin/:/usr/local/lnmp/php/bin

. ~/.bash_profile or make a soft link

[root@server11 bin]# ln -s /usr/local/lnmp/php/bin /usr/local/bin/

Compile

tar zxf memcache-2.2.5.tgz cd memcache-2.2.5
phpize    准备预编译环境

Detailed explanation of sample code for loading memcache module in PHP (picture)

./configure make && make install

Guarantee The execution path of php is the path of the source code package

 [root@server11 memcache-2.2.5]# which php /usr/local/lnmp/php/bin/php
cd /usr/local/lnmp/php/etc/
vim php.ini    记住是.
863         extension=memcache.so
/etc/init.d/php-fpm start

Check

[root@server11 etc]# php -m |grep memcache

Detailed explanation of sample code for loading memcache module in PHP (picture)

##rpm -qa |grep php Make sure there is no rpm package interference

Empty

Background installation configuration

yum install memcached -y
/etc/init.d/memcached start

Listening port netstat -antlpue

udp        
0      
0 0.0.0.0:11211               
0.0.0.0:*                               
498        
10940      
3706/memcached

Access memcached database

yum install telnet -y 
telnet localhost 11211
set name 0 0 6
westos
STORED
get name
VALUE name 0 6
westos
END
delete name
DELETED
get name 
END

Write monitoring page

cd memcache -2.2.5

cp memcache.php /usr/local/nginx/html/

vim memcache.php

23 define('ADMIN_PASSWORD','westos');      // Admin Password
28 $MEMCACHE_SERVERS[] = ''; // add more as an array
29 $MEMCACHE_SERVERS[] = 'mymemcache-server2:11211'; // add more as an arra    y

Write a test page

vim test.php

<?php
$memcache = new Memcache;
$memcache->connect(&#39;127.0.0.1&#39;, 11211) or die ("Could not connect");
$version = $memcache->getVersion();
echo "Server&#39;s version: ".$version."\n";
$tmp_object = new stdClass;
$tmp_object->str_attr = &#39;test&#39;;
$tmp_object->int_attr = 123;
$memcache->set(&#39;key&#39;, $tmp_object, false, 10) or die ("Failed to save data at the
server");
echo "Store data in the cache (data will expire in 10 seconds)\n";
$get_result = $memcache->get(&#39;key&#39;);
echo "Data from the cache:\n";
var_dump($get_result);
?>

Start nginx

nginx

Check

Access in the browser:

1. 172.25.88.11/memcache .php Monitor cache hit rate

2. 172.25.88.11/test.php

Continuously refresh, you can see on the monitoring page that the cache hit rate (Hits) is getting bigger and bigger

Detailed explanation of sample code for loading memcache module in PHP (picture)

Detailed explanation of sample code for loading memcache module in PHP (picture)

The above is the detailed content of Detailed explanation of sample code for loading memcache module in PHP (picture). 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