Chinaunix首页 | 论坛 | 博客
  • 博客访问: 864903
  • 博文数量: 72
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1693
  • 用 户 组: 普通用户
  • 注册时间: 2014-08-04 15:53
个人简介

主要从事Linux,云原生架构改造,服务网格,ELK,python,golang等相关技术。

文章分类

全部博文(72)

文章存档

2015年(52)

2014年(20)

分类: 架构设计与优化

2015-03-11 13:57:04

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

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

一个简单的memcahe工作图解:

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


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

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

[root@vm3 mnt]# tar zxf re2c-0.13.5.tar.gz
[root@vm3 mnt]# cd re2c-0.13.5
[root@vm3 mnt]# ./configure
[root@vm3 mnt]#make
[root@vm3 mnt]# make install
[root@vm3 mnt]# tar zxf memcache-2.2.5.tgz
[root@vm3 mnt]# cd memcache-2.2.5
[root@vm3 memcache-2.2.5]# phpize            #生成php扩展模块
Configuring for:
PHP Api Version:         20100412
Zend Module Api No:      20100525
Zend Extension Api No:   220100525
[root@vm3 memcache-2.2.5]# ./configure --prefix=/usr/local/lnmp/phpmodule/memcache    
[root@vm3 memcache-2.2.5]# make && make install
[root@vm3 memcache-2.2.5]# cd /usr/local/lnmp/php/etc
[root@vm3 etc]# vim php.ini
  1. ; ... or under UNIX:
  2. ;
  3. ; extension=msql.so
  4. extension=memcache.so #加上memcahe的支持
  5. ;
[root@vm3 etc]# /etc/init.d/php-fpm reload
Reload service php-fpm  done
然后在浏览器中输入:192.168.1.3/index.php

[root@vm3 php]# yum install memcached -y            
[root@vm3 ~]# vim /etc/sysconfig/memcached
[root@vm3 ~]# /etc/init.d/memcached start
[root@vm3 ~]# 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    

[root@vm3 memcache-2.2.5]# cp memcache.php /usr/local/lnmp/nginx/html/
[root@vm3 memcache-2.2.5]# cd /usr/local/lnmp/nginx/html/
[root@vm3 html]# vim memcache.php
  1. */

  2. $VERSION='$Id: memcache.php,v 1.2 2008/09/11 19:21:06 mikl Exp $';

  3. define('ADMIN_USERNAME','admin'); // Admin Username 设置我们的用户名
  4. define('ADMIN_PASSWORD','westos'); // Admin Password 密码
  5. define('DATE_FORMAT','Y/m/d H:i:s');
  6. define('GRAPH_SIZE',200);
  7. define('MAX_ITEM_DUMP',50);

  8. $MEMCACHE_SERVERS[] = '192.168.1.3:11211'; // add more as an array 我们所要做缓存的主机地址
  9. #$MEMCACHE_SERVERS[] = 'mymemcache-server2:11211'; // add more as an array
然后我们做测试,在浏览器中输入:,我们就会看到测试结果如下:

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




阅读(3571) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~