设为首页 收藏本站
查看: 961|回复: 0

[经验分享] 【Memcached】02、memcached的应用

[复制链接]

尚未签到

发表于 2018-12-24 11:15:20 | 显示全部楼层 |阅读模式
  

    上一篇我们学习了memcached的理论和安装,那memcached应该怎么应用呢,不可能手动使用telnet连上memcached服务器来管理缓存吧,那memcached是如何应用的呢?
    程序员在开发程序时,自行调用了memcached的API,memcached的缓存功能才能生效

Memcached的各客户端程序:
      Memcached:服务器
      memcached:php连接Memacached服务可以使用的扩展(新,性能更好)
        memcache:php连接memcache服务可以使用的另一个扩展(旧)
  libmemcachedc
  

  一、安装Memcached的PHP扩展
1、环境
  这里我使用之前安装好的LNMMP环境
Node1:php-fpm 7.1.1
Node2:Mariadb 10.0.20
Node7:nginx 1.10.3
Node5:Memcached 1.4.35
    各安装过程可以查看之前的文章


2、memcache简介
  PHP有两个memcached客户端扩展memcache和memcached。memcache是老客户端(2013年停止更新了),从我们实践中已发现有多个问题,而且功能少,属性也可设置的少,memcached是基于原生的c的libmemcached的扩展,更加完善,建议使用memcached。

  

  什么是PEAR
       PEAR的全称是PHP Extension and Application Repository,是PHP的扩展库,采用PHP语言编写。所以我们可以直接下载,并在我们的代码中包含(include)扩展库。
  什么是PECL
  PECL的全称是PHP Extension Community Library,它也是PHP的扩展库。PECL的扩展都是采用C语言编写的,可以被载入PHP中,给PHP增加额外的功能,比如PHP的Mongo扩展。
  memcache和memcached都是PECL中的项目
  

  3、安装php的memcached扩展
[root@Node1 src]# tar xf memcached-3.0.3-php.tgz
[root@Node1 src]# cd memcached-3.0.3
[root@Node1 memcached-3.0.3]# ls
ChangeLog   g_fmt.c            php_libmemcached_compat.c  php_memcached_server.c   tests
config.m4   g_fmt.h            php_libmemcached_compat.h  php_memcached_server.h
config.w32  LICENSE            php_memcached.c            php_memcached_session.c
CREDITS     memcached-api.php  php_memcached.h            php_memcached_session.h
fastlz      memcached.ini      php_memcached_private.h    README.markdown
###此时没有configure文件,都说了是扩展当前是作为php的插件(模块)运行
[root@Node1 memcached-3.0.3]# /usr/local/php/bin/phpize
                                 # 如果是yum安装的php,要安装了php-devel包才有这个命令
Configuring for:
PHP Api Version:         20160303
Zend Module Api No:      20160303
Zend Extension Api No:   320160303
[root@Node1 memcached-3.0.3]# ./configure --with-php-config=/usr/local/php/bin/php-config --enable-memcached遇到报错:
checking for libmemcached location... configure: error: memcached support requires libmemcached. Use --with-libmemcached-dir= to specify the prefix where libmemcached headers and library are located安装依赖了包libmemcached-devel还是报错
configure: error: no, libmemcached sasl support is not enabled. Run configure with --disable-memcached-sasl to disable this check只能编译安装新版本的libmemcached,并启用sasl功能

  

  解决步骤:


1)安装sasl
    yum install cyrus-sasl


2)编译安装libmemcached并启用sasl功能
   tar xf libmemcached-1.0.18.tar.gz
   cd libmemcached-1.0.18
  ./configure --prefix=/usr/local/libmemcached --enable-sasl
   make
   make install

libMemcached则是基于C语言开发的开源的C/C++代码访问memcached的库文件,同时,它还提供了数个可以远程使用的memcached管理工具,如memcat, memping,memstat,memslap等。




3)安装memcached安装
[root@Node1 memcached-3.0.3]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached/ --enable-memcached-sasl
[root@Node1 memcached-3.0.3]# make
[root@Node1 memcached-3.0.3]# make install
Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-zts-20160303/
       # 这个生成的库文件路径要配置在php的配置文件中,方便php找到该插件编辑/etc/php.ini,在“动态模块”相关的位置添加如下一行来载入memcache扩展:

  extension=/usr/local/php/lib/php/extensions/no-debug-zts-20160303/memcached.so
  并重新加载php-fpm的配置文件
  查看phpinfo页面可以看到已经有了memcached扩展:


而后对memcached功能进行测试,在网站目录中建立测试页面test.php,添加如下内容:
  网上相关的文档都是使用memcache,这个测试只能自己照着php手册上的介绍自己随便写个了
[root@Node1 htdocs2]# vim test.php
测试:
    
      看了半天都不知道这个怎样输出才会换行
  使用php的memcached扩展目的是在php程序中调用memcached的接口,通过缓存数据库查询的结果,减少数据库访问次数,以提高动态Web应用的速度、 提高可扩展性。
  

安装Memcache for PHP Module
(1)解压编译


  [plain] view plain copy print?

  •   tar -zxvf memcache-3.0.6.tgz  
  •   cd memcache-3.0.6  
  •   /usr/local/bin/phpize  
  •   ./configure --enable-memcache --with-php-config=/usr/local/php5/bin/php-config --with-zlib-dir  
  •   make  
  •   make install  


使用php的memcache扩展测试和memcached服务器所使用的代码:

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-655242-1-1.html 上篇帖子: memcached常见命令 下篇帖子: Magent + Keepalived实现Memcached高可用群集
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表