win7下Memcache的安装

1.下载memcache 的windows 稳定版,解压放某个盘下面,比如在D:/memcache;


2.在终端(即cmd 命令界面)下,输入安装命令 :
D:/memcache/memcached.exe –d install
[提示错误:failed to install service or service already installed]
解决方法:在系统盘中找到cmd.exe文件,点击右键,以管理员身份运行

3.输入命令,启动memcache服务
D:/memcache/memcache>memcached.exe -d start

4.测试memcache是否连接成功
D:/memcache/memcache>telnet 127.0.0.1 11211
[提示错误:'telnet' 不是内部或外部命令,也不是可运行的程序或批处理文件。]
注:windows7带有telnet,只是默认没有安装而已。
解决方法:
依次打开“开始”→“控制面板”→“打开或关闭Windows功能”,在打开的窗口处,寻找并勾选“Telnet客户端”,然后点击“确定”。顺利安装后,再在运行下输入此命令就OK了。
1.开始–>控制面板–>程序和功能
2.左侧 打开或者关闭windows功能
3.找到Telnet客户端,选择安装

5.输入:stats命令查看基本信息。
memcache连接测试运行成功!

6.输入:quit 退出
配置:
1.下载:php_memcache.dll组件。
2.复制:php_memcache.dll到指定的组件目录,默认在php/ext/下。
3.在php.ini中加入一句话:extension=php_memcache.dll,别忘了在C:/windows/php.ini中也要加这句话
4.重启apache服务器,使用phpinfo()函数查看启用情况。
测试:
创建mem.php,源码如下:
<?php
 $mem = new memcache;                                     //实例化
 $mem->connect('127.0.0.1',11211) or die ("链接失败");    //127.0.0.1(服务器地址)11211(端口号)
 echo $mem->getVersion();                                 //获得版本信息,使用echo输出
?> 

 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分配的问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值