您的位置:首页 > 数据库 > Memcache

Memcached 知识整理

2016-04-11 14:22 435 查看
关于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模型,+ 多线程模型。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  memcached redis