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

[经验分享] memcache和memcached区别

[复制链接]

尚未签到

发表于 2018-12-25 08:56:59 | 显示全部楼层 |阅读模式
  在写这篇文章之前一直对memcache 、memcached模糊,相差一个字母,特此总结下:
  Memcache是什么?
  Memcache是一个自由和开放源代码、高性能、分配的内存对象缓存系统。用于加速动态web应用程序,减轻数据库负载。它可以应对任意多个连接,使用
非阻塞的网络IO。由于它的工作机制是在内存中开辟一块空间,然后建立一个Hash表,Memcached自管理这些Hash表。
  Memcached是简单而强大的。它简单的设计促进迅速部署,易于发展所面临的问题,解决了很多大型数据缓存。它的API可供最流行的语言。
  Memcache官方网站:http://memcached.org/
  Memcached又是什么?
  Memcache是该系统的项目名称,Memcached是该系统的主程序文件(字母d可以理解为daemon),以守护程序方式运行于一个或多个服务器中,随时接受客户端的连接操作,使用共享内存存取数据。
  memcache客户端(php)
  PHP有两个memcache客户端:php memcache和php memcached。
  php memcache独立用php实现,是老客户端,从我们实践中已发现有多个问题,而且功能少,属性也可设置的少;
  http://pecl.php.net/package/memcache
  php memcached是基于原生的c的libmemcached的扩展,更加完善,建议替换为php memcached。
  http://pecl.php.net/package/memcached
  memcached安装(服务端)
cd /root/lnmp/src/wget http://memcached.googlecode.com/files/memcached-1.4.15.tar.gztar xzf memcached-1.4.15.tar.gz  
cd memcached-1.4.15 ./configure --prefix=/usr/local/memcached
  
make && make install
  

  
ln -s /usr/local/memcached/bin/memcached /usr/bin/memcached/bin/cp scripts/memcached.sysv /etc/init.d/memcached
  
sed -i 's@^USER=.*@USER=root@' /etc/init.d/memcached
  
sed -i 's@chown@#chown@' /etc/init.d/memcached
  
sed -i 's@/var/run/memcached/memcached.pid@/var/run/memcached.pid@' /etc/init.d/memcached
  
sed -i 's@^prog=.*@prog="/usr/local/memcached/bin/memcached"@' /etc/init.d/memcached #前面有软链接,这里可以省略chmod +x /etc/init.d/memcached
  
chkconfig --add memcached
  
chkconfig memcached on
  
cd ..
  启动memcached:
service memcached start  #或者执行下面memcached -p 11211 -l 127.0.0.1 -d -u root -P /var/run/memcached.pid -m 64M -c 1024  几个参数的解释:

  •   -p memcached监听的TCP端口
  •   -l 监听的ip地址,127.0.0.1是本机,当然也可以写上你的服务器IP,如:10.0.0.10,这是我服务器的IP地址,如果你需要多个服务器都能够读取这台memcached的缓存数据,那么就必须设定这个ip
  •   -d 以daemon方式运行,将程序放入后台
  •   -u memcached的运行用户,我设定的是nobody
  •   -P memcached的pid文件路径
  •   -m memcached可以使用的最大内存数量
  •   -c memcached同时可以接受的最大的连接数
  如果你希望以socket方式来访问memcached,那么在启动的时候就必须去掉 -l和-p参数,并加上-s参数:

  •   -s memcached的socket文件路径
  php中memcache扩展组件的安装
tar xzf memcache-2.2.7.tgzcd memcache-2.2.7/usr/local/php/bin/phpize./configure --with-php-config=/usr/local/php/bin/php-config  
make && make install
  
cd ../
  按照我的环境,编译出来的memcache.so自动生成在/usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/ 目录下,如果你的环境不一样,你得根据自己情况修改你的php.ini了。
  接着要做的工作就是让php加载这个扩展,编辑你的php.ini,在适当位置(通常是最后,也可以是独立的一个ini文件)加入如下行:
extension=memcache.so  然后重启php或者apache,运行一个phpinfo()来确认一下,正常的话你应该可以看到这个了:memcache
  php-memcache的简单使用举例:

  php中memcached扩展组件的安装(LNMP一键安装包)
  最新版ibmemcached-1.0.17.tar.gz可能会报错
  error: ‘HAVE_MEMCACHED_BINARY’ was not declared in this scope
  用libmemcached-1.0.16.tar.gz没问题
  安装如下:
wget https://launchpad.net/libmemcached/1.0/1.0.16/+download/libmemcached-1.0.16.tar.gz  
wget http://pecl.php.net/get/memcached-2.1.0.tgztar xzf libmemcached-1.0.16.tar.gz
  
cd libmemcached-1.0.16./configure --with-memcached=/usr/local/memcached
  
make && make install
  
cd ..tar xzf memcached-2.1.0.tgzcd memcached-2.1.0/usr/local/php/bin/phpize./configure --with-php-config=/usr/local/php/bin/php-config
  
make && make install
  按照我的环境,编译出来的memcached.so自动生成在 /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/ 目录下,如果你的环境不一样,你得根据自己情况修改你的php.ini了。
  接着要做的工作就是让php加载这个扩展,编辑你的php.ini,在适当位置(通常是最后,也可以是独立的一个ini文件)加入如下行:
extension=memcached.so  然后重启php或者apache,运行一个phpinfo()来确认一下,正常的话你应该可以看到这个了:memcached
  总结:
  其实很简单,memcache是php的一个扩展,用于php管理memcached(服务端),php-memcache.dll。
  如果安装了memcached(服务端)不安装扩展,那么php无法操控memcached,但是命令行使用起来没有问题
  如果安装了PHP memcache客户端(php memcache和php memcached)。但是没有安装memcached(服务端)服务,那么这个就无法使用
  只有同时安装了memcached(服务端)和PHP memcache客户端扩展才可以提高动态网站性能
  转载请保留固定链接: https://blog.linuxeye.com/345.html



运维网声明 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-655508-1-1.html 上篇帖子: Memcached使用点滴 下篇帖子: Centos7 下实现 memcached + keepalived 高可用群集
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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