magic 发表于 2015-12-24 08:58:06

lnmp-php扩展memcahe的源码编译安装

百度百科:
    Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。

    MemCache的工作流程如下:先检查客户端的请求数据是否在memcached中,如有,直接把请求数据返回,不再对数据库进行任何操作;如果请求的数据不在memcached中,就去查数据库,把从数据库中获取的数据返回给客户端,同时把数据缓存一份到memcached中(memcached客户端不负责,需要程序明确实现);每次更新数据库的同时更新memcached中的数据,保证一致性;当分配给memcached内存空间用完之后,会使用LRU(Least Recently Used,最近最少使用)策略加上到期失效策略,失效数据首先被替换,然后再替换掉最近未使用的数据。
    Memcached是以守护程序(监听)方式运行于一个或多个服务器中,随时会接收客户端的连接和操作。

一个简单的memcahe工作图解:

                        ——>    首次访问:从RDBMS中取得数据保存到memcahed
                        ——>    第二次后:从memcahed中取得数据显示页面


接下来我们给php里面安装memcahe扩展:

安装之前需要安装re2c这个工具,科普(re2c是书写工具非常快,非常灵活的扫描仪。不同于任何其他的工具,Re2C集中在正则表达式匹配生成高效的代码。做为一个结果,这允许比任何传统的词法分析器提供还了一个更广泛的使用范围。最后但并非最不重要的警告免费代码Re2C生成等于手工编写的代码大小,速度和质量。)

# tar zxf re2c-0.13.5.tar.gz
# cd re2c-0.13.5
# ./configure
#make
# make install
# tar zxf memcache-2.2.5.tgz
# cd memcache-2.2.5
# phpize            #生成php扩展模块
Configuring for:
PHP Api Version:         20100412
Zend Module Api No:      20100525
Zend Extension Api No:   220100525
# ./configure --prefix=/usr/local/lnmp/phpmodule/memcache   
# make && make install
# cd /usr/local/lnmp/php/etc
# vim php.ini


[*]; ... or under UNIX:
[*];
[*];   extension=msql.so
[*]extension=memcache.so #加上memcahe的支持
[*];
# /etc/init.d/php-fpm reload
Reload service php-fpmdone
然后在浏览器中输入:192.168.1.3/index.php

# yum install memcached -y            
# vim /etc/sysconfig/memcached
# /etc/init.d/memcached start
# netstat -antlp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp      0      0 127.0.0.1:9000            0.0.0.0:*                   LISTEN      12275/php-fpm      
tcp      0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      7753/mysqld         
tcp      0      0 0.0.0.0:11211               0.0.0.0:*                   LISTEN      12328/memcached   
tcp      0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      7884/nginx               
tcp      0      0 :::11211                  :::*                        LISTEN      12328/memcached   

# cp memcache.php /usr/local/lnmp/nginx/html/
# cd /usr/local/lnmp/nginx/html/
# vim memcache.php


[*]*/
[*]
[*]$VERSION='$Id: memcache.php,v 1.2 2008/09/11 19:21:06 mikl Exp $';
[*]
[*]define('ADMIN_USERNAME','admin');       // Admin Username    设置我们的用户名
[*]define('ADMIN_PASSWORD','westos');      // Admin Password    密码
[*]define('DATE_FORMAT','Y/m/d H:i:s');
[*]define('GRAPH_SIZE',200);
[*]define('MAX_ITEM_DUMP',50);
[*]
[*]$MEMCACHE_SERVERS[] = '192.168.1.3:11211'; // add more as an array    我们所要做缓存的主机地址
[*]#$MEMCACHE_SERVERS[] = 'mymemcache-server2:11211'; // add more as an array
然后我们做测试,在浏览器中输入:http://192.168.1.3/memcache.php,我们就会看到测试结果如下:

我么看到以上页面表示测试成功。



页: [1]
查看完整版本: lnmp-php扩展memcahe的源码编译安装