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

Windows下的Memcache安装

2012-12-05 14:17 225 查看

Windows下的Memcache安装

很多phper不知道如何在Windows下搭建Memcache的开发调试环境,最近个人也在研究Memcache,记录下自己安装搭建的过程。

其实我开始研究Memcache的时候并不知道居然还有memcached for Win32这个鸟东西,害得我在CnetOS下折腾1天才搞定,今天突然发现Windows下的Memcache进行开发调试完全没有问题,所以写篇Memcache的文档分享给大家。
Windows下的Memcache安装

1. 下载memcache的windows稳定版,解压放某个盘下面,比如在c:\memcached

2. 在终端(也即cmd命令界面)下输入 ‘c:\memcached\memcached.exe -d install’ 安装

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;

?>

摘自:http://www.ccvita.com/258.html

Memcached在WIN32下的相关设置

memcached for win32 下载地址:http://code.jellycan.com/memcached/
1.在WIN32下 无法使用命令更改内存大小,端口等 ,只能通过修改注册表实现
有些命令需要通过服务参数来执行,我们可以用下面方法修改这些服务参数。修改前先停止 memcached 服务。
(1) 打开注册表,找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\memcached Server。

(2) 修改 ImagePath 项,比如 ""C:\memcached\memcached.exe" -d runservice -m 100 -p 1234",这样服务启动后监听端口就成了 1234,最大缓存内存就是 100 MB。
2.可以通过telnet 查看当前状态

telnet 192.168.1.2 11211

stats

----------------------------------------

STAT pid 3932 --进程ID

STAT uptime 137

STAT time 1207723245

STAT version 1.2.1 --版本号

STAT pointer_size 32

STAT curr_items 999999 --当前ITEM 激活中的

STAT total_items 999999 --总ITEM

STAT bytes 51888843

STAT curr_connections 5 --当前连接数

STAT total_connections 6 --总连接数

STAT connection_structures 6

STAT cmd_get 0 --进行GET的次数

STAT cmd_set 999999 --进行SET的次数

STAT get_hits 0 --命中数

STAT get_misses 0 --命中失败数

STAT bytes_read 24888902

STAT bytes_written 8000378

STAT limit_maxbytes 524288000 --分配的总内存空间

END

当SET一个已有的ITEM时,total_items 会加1,curr_items 不会改变

Memcached采用LRU(Least Recently Used:最近最少被使用)算法,对长时间没有SET的ITEM会作为垃圾处理,在分配的内存空间不足的情况下,当有新的ITEM进来,会踢掉最老的一个ITEM
在分配64M空间的情况下,插入50W个ITEM,

curr_item 314568

total_item 499999
就是说64M只能放314568个ITEM,有十多万 item是被当作垃圾踢掉了.
当把内存增加到500M时,情况不同了
STAT curr_items 999999

STAT total_items 999999
所有的ITEM都在内存里了,命中率肯定就100%了
999999 个ITEM占了125M的内存
private string[] serverlist = { "192.168.1.2:11211","192.168.1.3:11211" };
memcached 会自动分配ITEM到多台机器上,取的时候也会自动从台机器上取,用户不用考虑KEY分配的问题
php 使用memcached
PHP membercached 扩展下载地址:http://downloads.php.net/pierre/
1.把php_memcache.dll放到php的安装文件里的扩展文件夹中,也就是放在php的ext
目录下
2.修改php.ini这个配置文件,加入extension=php_memcache.dll 这一行代码。
3.重启apache,然后用php写一个phpinfo()函数就,如果列表里出现了memcache就
说明安装成功了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: