关于Redis与Memcached的区别可以看看这篇文章。
http://blog.csdn.net/tonysz126/article/details/8280696/
多数情况下Redis具备更优秀的功能,但是memcached的并发能力应该更强,而且分布式部署的速度会快些。Redis自身不具备分布式部署的能力的,不过听闻新版本是开始往这方面努力了。
关于Memcached和Memcache的区别,也请找找文章阅读阅读。
memcache是pecl扩展库版本
memcached是libmemcached版本
我理解是起错名字了,很容易跟memcached服务混淆,反正是起错名字了。
关于Memcached的详细介绍,这篇文章不错:http://kb.cnblogs.com/page/42731/ ,里面介绍了分布式客户端的内部逻辑,对理解所谓的分布式很有帮助。
不管对错,项目里面已经用了Memcached了,所以整理下开发环境的安装过程。
Windows安装
下载地址是
- 先下载memcached-win32启动软件,如果下载不了就百度找找
http://down2.121down.com:8181/soft/memcached-1.4.20.rar
G:\***\memcached-win64-1.4.4-14\memcached\memcached.exe -d install (安装)
G:\***\memcached-win64-1.4.4-14\memcached\memcached.exe -d start (启动)
看一看进程里面有没有memcached进程,有则启动成功。
如果在没有安装过的情况下,出现”failed to install service or service already installed”错误,可能是cmd.exe需要用管理员身份运行。
这样安装将会在系统每次启动的时候都需要启动一次,不过是开发环境,所以这样就够了,如果正式环境就最好是发启动发布为服务。
如果要配置为服务,可以参考这里来配置:http://www.jb51.net/article/30334.htm
注意,memcached是进程的名称,是服务端的叫法,跟客户端memcached和memcache是没有关系的,客户端的memcached和memcache是不一样的,因为两者基于的lib不一样,从而提供了不同的功能、性能。
PHP中配置 Memcach Client端
1、下载: php_memcache.dll 组件,可以下载这个
2、复制 php_memcache.dll 到指定的组件目录, 默认在 php\ext\
3、在PHP.ini 加入一句话: extension=php_memcache.dll
4、重启WEB服务,使用 phpinfo() 函数查看启用情况 如果有memcache,那么就说明安装成功!
验证代码
<?php
$memcache = new Memcache(); //windows
$memcache->connect('127.0.0.1', 11211 ) or die ( "Could not connect Memcached server!" );
$memcache->set( 'Memcache', "hello Memcache!<br/>");
echo $memcache->get('Memcache');
?>
window下搞这个配置还几麻烦的,其中dll文件就已经难找,在官网上都不知道哪里可以去得到。
严格来说,memcached客户端在window下是没法配置的,因为window的lib没有人编译有现成的,不过可以使用client来处理,这篇文章可以帮忙。
http://hudeyong926.iteye.com/blog/887754
关于Memcached的一些关键内容:
1、分布式实现方案:利用Hash 或者 一致性Hash 方法来存放和查找Key-Value。服务器间不通讯。考虑好数据分布的均匀性。
2、存储不能大于1M的数据。(受限于Slab内存分配算法)
3、多路复用I/O模型,+ 多线程模型。