memcache与memcached的区别

其实到底说成什么无所谓,只要你真正理解和知道使用就可以了!但是介于有和我一样学习时遇到的这个疑惑,在此分享下其中的缘由:

Memcache是一个软件

Memcache是一个自由和开放源代码、高性能、分配的内存对象缓存系统。用于加速动态web应用程序,减轻数据库负载。

它可以应对任意多个连接,使用非阻塞的网络IO。由于它的工作机制是在内存中开辟一块空间,然后建立一个HashTable,Memcache这个软件项目一般叫Memcache,但项目的主程序文件叫memcached.exe,是靠服务端的这个守护进程管理这些HashTable。由于这个命名问题,所以很多人把这个软件系统叫memcache,想叫成memcached也没什么问题!

PHP有两个针对上述软件的PECL扩展:一个叫memcache,一个叫memcached

memcache扩展是完全在PHP框架内开发的,memecached扩展是使用libmemcached的。从手册上看,memcached 会比 memcache 多几个方法,使用方式上都差不多,具体区别稍后再谈!

这样大家应该明白了吧,下面画了一个图帮助理解:

可知,不同语言都有自己针对Memcache的扩展!

PHP中memcache扩展和memcached扩展的区别

对于这个内存缓存系统,PHP有两个扩展,分别是memcache和memcached扩展。而memcached和memcache的守护进程 memcached 同名,比较容易引起混淆,甚至提到memcached,有些人第一想到的是后台的守护进程,这里还是有必要分析一下两者之间的区别,以下观点仅是个人观点,希望朋友进行补充和更正。

首先我们可以从php官方手册上可以清晰的看到两者的区别:

memcache是完全在PHP框架内开发的,memecached是使用libmemcached的。从手册上看,memcached 会比 memcache 多几个方法,使用方式上都差不多。

memcache是原生实现的,但是使用libmemcached的memached只支持OO接口,而 memcache则是OO和非OO两套接口并存,以后随着memcached服务器端的改进,这个lib也必定会马上跟进的。而memcache却不一定能做到按时跟进。

memcached,还有个非常称赞的地方,就是flag不是在操作的时候设置了。而是有一个统一的setOption()。memcached 实现了更多的 memcached 协议(毕竟是基于 libmemcached 库的)。

这里有另外一个对比表,很明显,用 memcached 会让人放心很多:http://code.google.com/p/memcached/wiki/PHPClientComparison

差别比较大的一点是,memcached 支持 Binary Protocol,而 memcache 不支持,意味着 memcached 会有更高的性能。不过,还需要注意的是,memcached 目前还不支持长连接。

上述软件的最新版本和下载地址

Memcache(服务端):

PHP针对Memcache软件的memcache扩展:

PHP针对Memcache软件的memcached扩展:

(注意:在Unix/Linux下安装需要先安装libevent,详细安装个系统稍有差异,安装PHP的memcached扩展需要先安装libmemcached,具体各种软件的安装方法在此不详述,大家自己google一下即可)

PHP的memcached客户端memcahce与memcached比较:http://code.google.com/p/memcached/wiki/PHPClientComparison

延伸阅读:

Windows下memcached.exe的安装与配置

Installing Memcached for PHP 5.3 on Windows 7

时间: 2024-11-05 21:38:26

memcache与memcached的区别的相关文章

memcache和memcached的区别

关于PHP扩展memcache和memcached的区别 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached基于一个存储键/值对的hashmap.其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信. PHP的客户端目前常用的有两个,一个是memcache,另一个是memcached,两

php的memcache和memcached扩展区别

老生长谈的问题了.我这里就整理一下. memcache的文档在:http://pecl.php.net/package/memcache memcached的文档在:http://pecl.php.net/package/memcached 首先看下时间,memcache最早是在2004年2月开发的,最后更新是在2013年4月,而memcached最早是在2009年1月开发的,最后更新是在2014年1月更新的.所以memcache的历史比memcached早. 在安装memcache扩展的时候并

php的memcache和memcached扩展区别【转载】

老生长谈的问题了.我这里就整理一下. memcache的文档在:http://pecl.php.net/package/memcache memcached的文档在:http://pecl.php.net/package/memcached 首先看下时间,memcache最早是在2004年2月开发的,最后更新是在2013年4月,而memcached最早是在2009年1月开发的,最后更新是在2014年1月更新的.所以memcache的历史比memcached早. 在安装memcache扩展的时候并

Memcache 与 Memcached 的区别

Memcached 从0.2.0开始,要求PHP版本>=5.2.0,Memcache 要求PHP版本>=4.3. Memcached 最后发布时间为2018-12-24,Memcache 最后发布时间2013-04-07. Memcached 基于libmemcached,Memcache 基于PECL扩展. 可以将 Memcached 看作是 Memcache 的升级版. 原文地址:https://www.cnblogs.com/flzs/p/12204775.html

php扩展memcache和memcached安装

首先简单介绍下memcache和memcached的区别 两个不同版本的php的memcached的客户端new memcache是pecl扩展库版本new memcached是libmemcached版本 memcache最早是在2004年2月开发的,最后更新是在2013年4月,而memcached最早是在2009年1月开发的,最后更新是在2014年1月更新的.所以memcache的历史比memcached早. 在安装memcache扩展的时候并不要求安装其他东东,但是在安装memcached

memcache和memcached区别

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

redis和memcached的区别(总结)

观点一: 1.Redis和Memcache都是将数据存放在内存中,都是内存数据库.不过memcache还可用于缓存其他东西,例如图片.视频等等: 2.Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储: 3.虚拟内存--Redis当物理内存用完时,可以将一些很久没用到的value 交换到磁盘: 4.过期策略--memcache在set时就指定,例如set key1 0 0 8,即永不过期.Redis可以通过例如expire 设定,例如expire n

[Database] redis 和 memcached的区别

redis 和 memcached的区别 一.支持的数据类型,memcache比较单一,redis除了基本的类型还支持 list,set,queue等等 二.对持久化的支持,redis支持的比较好:memcache不支持,在缓存方面做得比较好. [1] http://www.blogjava.net/paulwong/archive/2013/09/06/403746.html

Memcache与Memcached介绍及安装配置

Memcache学习总结1-Memcache与Memcached介绍及安装配置 也许大家一看到Memcache和Memcached会有点晕,这两者有什么关系又有什么区别呢,下面先给大家说下Memcached,Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度. 想必大家也听说过Memcached,就是一个缓存系统,我们可以把一些经常要查询的数据放到缓存中,避免每次要使用