Memcached在WIN32下的相关设置

来源:互联网 发布:公知 知乎 编辑:程序博客网 时间:2024/05/29 15:52

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
原创粉丝点击