我最近研究这个memcache 发现这个东东,版本以及名称很多,有点混乱,这两天研究下来我是这么梳理的,不知道对不对,和大家一起分享
Memcached 是分布式cache,他有服务端和client端,核心版本是在Linux上运行
官方网站为 http://memcached.org/ 对应的wiki在google上
http://code.google.com/p/memcached/ 其实现在memcached的相关文档和代码都在google.code上了
对应Linux 上版本的维护的挺好,但是对于windows版本的就很糟糕了,可能因为大型应用大多是Unix或其变种
很多phper不知道如何在Windows下搭建Memcache的开发调试环境,最近个人也在研究Memcache,记录下自己安装搭建的过程。
Windows下的Memcache安装 :
1. 下载memcache 的windows稳定版,解压放某个盘下面,比如在c:/memcached
2. 在终端(也即cmd命令界面)下输入 ‘c:/memcached/memcached.exe -d install’ 安装【见底部同服务器多MEMCACHE服务的安装 】
3. 再输入: ‘c:/memcached/memcached.exe -d start’ 启动。NOTE: 以后memcached将作为windows的一个服务每次开机时自动启动。这样服务器端已经安装完毕了。
4.下载php_memcache.dll ,请自己查找对应的php版本的文件
5. 在C:/winnt/php.ini 加入一行 ‘extension=php_memcache.dll’
6.重新启动Apache,然后查看一下phpinfo,如果有memcache,那么就说明安装成功!
memcached的基本设置 :
-p 监听的端口
-l 连接的IP地址, 默认是本机
-d start 启动memcached服务
-d restart 重起memcached服务
-d stop|shutdown 关闭正在运行的memcached服务
-d install 安装memcached服务
-d uninstall 卸载memcached服务
-u 以的身份运行 (仅在以root运行的时候有效)
-m 最大内存使用,单位MB。默认64MB
-M 内存耗尽时返回错误,而不是删除项
-c 最大同时连接数,默认是1024
-f 块大小增长因子,默认是1.25
-n 最小分配空间,key+value+flags默认是48
-h 显示帮助
Memcache环境测试 :
运行下面的php文件,如果有输出This is a test!,就表示环境搭建成功。开始领略Memcache的魅力把!
< ?php
$mem = new Memcache;
$mem->connect(”127.0.0.1″, 11211);
$mem->set(’key’, ‘This is a test!’, 0, 60);
$val = $mem->get(’key’);
echo $val;
?>
在单台服务器下开启多个memcached服务
32bit下 memcached只支持最大4G内存
所以如果服务器的内存是4G以上只开一个服务那就显得浪费了,可以在服务器上开启多个服务。
LINUX下
首先安装memcached需要libevent支持 【原理见底部】
http://www.monkey.org/~provos/libevent-1.4.12-stable.tar.gz
wget http://www.monkey.org/~provos/libevent-1.4.12-stable.tar.gz
cd libevent-1.4.12-stable.tar.gz
./configure --prefix=/usr/local
make
make install
ln -s /usr/local/libevent/lib/libevent-1.4..so.2 /usr/lib
安装后下载memcached
http://memcached.googlecode.com/files/memcached-1.4.2.tar.gz
wget http://memcached.googlecode.com/files/memcached-1.4.2.tar.gz
cd memcached-1.4.2.tar.gz
./configure --prefix=/usr/local -with-libevent=/usr/
make
make install
启动多个memcached服务
/usr/local/lib/memcached -d -m 2048 -u root -c 1024 -p 11211 -P /tmp/memcached1.pid
/usr/local/lib/memcached -d -m 2048 -u root -c 1024 -p 11211 -P /tmp/memcached2.pid
WIN下
sc create memcached1 binpath= "c:/memcached/memcached.exe -d runservice -m 64 -c 2048 -p 11211" start= auto displayname= "memcached1"
建立服务器2:
sc create memcached2 binpath= "c:/memcached/memcached.exe -d runservice -m 64 -c 2048 -p 11212" start= auto displayname= "memcached2"
建立服务器3:
sc create memcached3 binpath= "c:/memcached/memcached.exe -d runservice -m 64 -c 2048 -p 11213" start= auto displayname= "memcached3"
开始——运行——cmd.exe,然后输入sc就可以看到了。使用办法很简单:
sc delete "服务名" (如果服务名中间有空格,就需要前后加引号)
如针对上面的: sc delete KSD2Service
然后进入WINDOW的系统服务进行开启 memcache服务
参考资料 :
对Memcached有疑问的朋友可以参考下列文章:
Linux下的Memcache安装 :http://www.ccvita.com/257.html
Windows下的Memcache安装 :http://www.ccvita.com/258.html
Memcache基础教程 :http://www.ccvita.com/259.html
Discuz!的Memcache缓存实现 :http://www.ccvita.com/261.html
Memcache协议中文版 :http://www.ccvita.com/306.html
Memcache分布式部署方案 :http://www.ccvita.com/395.html
libevent产生的背景 http://hustlg.bokee.com/6573083.html