官方网站为 http://memcached.org/
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 显示帮助
在单台服务器下开启多个memcached服务
WIN下
建立服务器1:
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"
删除服务:sc delete "服务名"
进入WINDOW的系统服务进行开启 memcache服务
修改:php.ini
增加:
[memcache]
memcache_hash_strategy="consistent"//一致性hash,提高因memcache服务器宕机或者增加时的命中率
测试:
$memcache = new Memcache; $memcache->addServer('192.168.110.123', 11211); $memcache->addServer('192.168.110.123', 11212); $memcache->addServer('192.168.110.123', 11213); //生成a-z的数组 $arr=array(); $tmp=""; for($i=97;$i<123;$i++) { $tmp=chr($i); $arr[$tmp]=$tmp; } $tmp=null; foreach($arr as $k => $v) { $memcache->set($k,$k.time()); echo $memcache->get($k),"<br/>"; } //$memcache->flush();//清除数据
原来的key分布
1
z,x,v,t,s,q,n,l,k,i
g,e,b
2
y,w,u,r,p,o,m,j,h,f
d,c,a
增加一台服务器后的key分布
**********************************
1
y,v,t,r,q,p,o,j,i,g
b
2
x,w,u,l,k,h
3
z,s,n,m,f,e,d,c,a
失效了一部分数据