本篇文章会介绍memcache在Windows和Linux下的具体安装过程,详细的记录其中的流程内容,帮助小伙伴们快速的搭建起memcache服务,废话少说,直接上!!!
Windows:
Memcache
1) 下载安装包
-
-
- Memcached 64-bit for Windows:http://www.urielkatz.com/archive/detail/memcached-64-bit-windows/
- 官网源码:http://memcached.org/downloads
-
下载之后解压到本地目录,本例中解压到这个目录
c:memcached
2) 在命令行状态下输入这个命令安装
d:memcachedmemcached.exe -d install
至此memcached已经安装成windows服务。而且以后memcached将作为windows的一个服务每次开机时自动启动(可以通过 运行 > services.msc 看到 memcached 的启动类型为“自动”)。这样服务器端已经安装完毕了。
3)在命令行下输入
c:memcachedmemcached.exe -d start
启动 memcached 服务,当然也可以选择在windows服务中启动,默认监听端口是 11211。
PHP
1)下载 php_memcache.dll 模块
https://pecl.php.net/package/memcache
注意,要根据自己的PHP版本和字节位数(不是系统位数)选择扩展包,否则会无法使用。
2)修改php.ini,添加如下内容
extension=php_memcache.dll
3)重启apache服务器,然后查看一下phpinfo,如果有 memcache,那么就说明安装成功
4)测试
<?php // 新建连接 $memcache = new Memcache; $memcache->connect('localhost', 11211) or die ("Could not connect"); // 打印版本号 $version = $memcache->getVersion(); echo "Server's version: ".$version."<br/>n"; // 新建对象 $tmp_object = new stdClass; $tmp_object->str_attr = 'test'; $tmp_object->int_attr = 123; // 保存对象 $memcache->set('key', $tmp_object, false, 10) or die ("Failed to save data at the server"); echo "Store data in the cache (data will expire in 10 seconds)<br/>n"; // 获取对象 $get_result = $memcache->get('key'); echo "Data from the cache:<br/>n"; var_dump($get_result);
5)使用memcache会话处理
<?php $session_save_path = "tcp://$host:$port?persistent=1&weight=2&timeout=2&retry_interval=10, ,tcp://$host:$port"; ini_set('session.save_handler', 'memcache'); ini_set('session.save_path', $session_save_path); ?>
参数:
Memcache 命令的参数选项有:
-
-
- -p 监听的端口,默认是 11211
- -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 显示帮助
-
如果要修改启动的端口和内存使用等参数,则打开注册表,找到:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesmemcached Server
其中的ImagePath项的值为:
"c:memcachedmemcached.exe" -d runservice
改成:
"c:memcachedmemcached.exe" -p 12345 -m 128 -d runservice
保存后重新启动 memcached 服务,然后在命令行中输入netstat -n -a 看看现在端口是不是改啦