在写这篇文章之前一直对memcache 、memcahced模糊,相差一个字母,特此总结下:
Memcache是什么?
Memcache是一个自由和开放源代码、高性能、分配的内存对象缓存系统。用于加速动态web应用程序,减轻数据库负载。它可以应对任意多个连接,使用非阻塞的网络
IO。由于它的工作机制是在内存中开辟一块空间,然后建立一个HashTable,Memcached自管理这些HashTable。
Memcached是简单而强大的。它简单的设计促进迅速部署,易于发展所面临的问题,解决了很多大型数据缓存。它的API可供最流行的语言。
Memcache官方网站:http://memcached.org/

Memcached又是什么?
Memcache是该系统的项目名称,Memcached是该系统的主程序文件(字母d可以理解为domain),以守护程序方式运行于一个或多个服务器中,随时接受客户端的连接操作,使用共享内存存取数据。

PHP中的Memcache是什么?
php中的所讲的memcache是用于连接Memecached的客户端组件。

Memcache如何安装?

cd /root/lnmp/source/
wget http://memcached.googlecode.com/files/memcached-1.4.15.tar.gz
tar xzf memcached-1.4..tar.gz
cd memcached-1.4.
./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 -l 127.0.0.1 -d -u root -P /var/run/memcached.pid -m 64M -c

几个参数的解释:

-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扩展组件的安装LNMP一键安装包

tar xzf memcache-2.2..tgz
cd memcache-2.2.
/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
$memcache = new Memcache;
$memcache->connect('127.0.0.1','');
$memcache->setCompressThreshold(, 0.2); // 设置压缩
echo $memcache->getVersion(); // 输出memcached版本 $test = array(,,,,,'abcde'); //生成一个数组 if($memcache->get('test')){
print_r($memcache->get('test')); //获取数据
echo "\n";
echo 'cached';
echo "\n";
}else{
$memcache->set('test',$test,,); //写入数据
echo 'no cache';
echo "\n";
}
?>

总结:
其实很简单,memcache是php的一个扩展,用于php管理memcached,php-memcache.dll。

如果安装了memcached不安装扩展,那么php无法操控memcached,但是命令行使用起来没有问题

如果安装了memcache扩展但是没有安装memcached服务,那么这个就无法使用

只有同时安装了memcached服务和memcache扩展才可以在PHP中使用memcached提高动态网站性能

转自:http://blog.linuxeye.com/345.html

memcache和memcahced区别的更多相关文章

  1. php扩展memcache和memcached区别?以及memcached软件的介绍

    引用“http://www.vicenteforever.com/2012/03/memcache-different-memcached/” memcached是一个软件,而PHP包括了memcac ...

  2. memcache和memcahced的区别

    Memcache是什么?Memcache是一个自由和开放源代码.高性能.分配的内存对象缓存系统.用于加速动态web应用程序,减轻数据库负载.它可以应对任意多个连接,使用非阻塞的网络IO.由于它的工作机 ...

  3. memcache 和 memcached 区别

    区别用一句话表达:Memcached (字母d可以理解为daemon)是一个服务(运行在服务器上的程序,监听某个端口),Memcache 是 一套访问Memcached的api. memcache客户 ...

  4. NoSQL数据库memcache和redis区别

    在web后台发开面试中,经常会被问道memcache和redis的区别和使用情况. 其中memcache和redis都是基于内存存储的缓存系统,存储形式key--value键值对的形式. 区别: 1. ...

  5. Redis.Memcache和MongoDB区别?

    Memcached的优势: Memcached可以利用多核优势,单吞吐量极高,可以达到几十万QPS(取决于Key.value的字节大小以及服务器硬件性能,日常环境中QPS高峰大约在4-6w左右.)适用 ...

  6. memcache和redis区别

    memcache官方定义 Free & open source, high-performance, distributed memory object caching system, gen ...

  7. Redis,Memcache,mongoDB的区别

    从以下几个维度,对redis.memcache.mongoDB 做了对比,欢迎拍砖 1.性能 都比较高,性能对我们来说应该都不是瓶颈 总体来讲,TPS方面redis和memcache差不多,要大于mo ...

  8. php模块memcache和memcached区别分析

    zm总结:尽量使用memcached就好了 1.目前大多数php环境里使用的都是不带d的memcache版本,这个版本出的比较早,是一个原生版本,完全在php框架内开发的.与之对应的带d的memcac ...

  9. memcache和memcached区别

    Memcache是一个自由和开放源代码.高性能.分配的内存对象缓存系统.用于加速动态web应用程序,减轻数据库负载.它可以应对任意多个连接,使用非阻塞的网络IO.由于它的工作机制是在内存中开辟一块空间 ...

随机推荐

  1. javascript正则表达式控制input只能输入数字

    不能输入中文 <input type="text" name="textfield"  onkeyup="this.value=this.val ...

  2. Android开发之“点9”

    “点九”是andriod平台的应用软件开发里的一种特殊的图片形式,文件扩展名为:.9.png智能手机中有自动横屏的功能,同一幅界面会在随着手机(或平板电脑)中的方向传感器的参数不同而改变显示的方向,在 ...

  3. npm在项目目录安装插件需要使用sudo

    今天使用node的npm安装插件的时候遇到一个问题,那就是在项目目录里面安装插件的时候,必须使用超级用户(sudo)执行才会安装成功,否则会报如下错误: 以安装 gulp-uglify 为例 $ np ...

  4. Effective C++学习笔记 条款04:确定对象被使用前已先被初始化

    一.为内置类型对象进行手工初始化,因为C++不保证初始化它们. 二.对象初始化数据成员是在进入构造函数用户编写代码前完成,要想对数据成员指定初始化值,那就必须使用初始化列表. class A { pu ...

  5. 1128. Partition into Groups(图着色bfs)

    1128 写的dfs貌似不太对 bfs重写 用bfs将图进行黑白染色 如果有超过一个与自己颜色相同的点 就把该点存入栈中 最后处理栈中的点 判断此点是否合法 不合法 取反 取反后再判断相邻点是否合法 ...

  6. SPRING STS Virgo OSGI 开发一 : bundle 项目的创建

    1. Spring STS 下载地址  (spring 最近改了站点 暂时不是太熟悉)     http://spring.io/tools/sts/all 2. 下载 Virgo 插件    htt ...

  7. 最受Web前端开发者欢迎的五大开发工具

    工其事,必利于器.好的开发工具毋容置疑会帮助Web前端开发者事半功倍,51CTO在上期主办的技术沙龙<大型网站PHP开发之道> 对现场的百余位Web开发者做了问卷调查,后经51CTO调研小 ...

  8. 【转】JAVA之网络编程

    转自:火之光 网络编程 网络编程对于很多的初学者来说,都是很向往的一种编程技能,但是很多的初学者却因为很长一段时间无法进入网络编程的大门而放弃了对于该部分技术的学习. 在 学习网络编程以前,很多初学者 ...

  9. ES PES TS

    1.流媒体系统结构 ES:elemental stream 基本数据流: PES:packet elemental stream分组的基本数据流: 然后把PES打包成PS ,TS流,PS:progra ...

  10. 【流媒體】live555—VS2010 下live555编译、使用及测试

    Ⅰ live555简介 Live555 是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输协议如RTP/RTCP.RTSP.SIP等的支持.Live555实现了对多种音视频编 ...