memcached(windows)安装与配置

推荐博客:http://snowolf.iteye.com/blog/1447348 

          http://snowolf.iteye.com/blog/1471805 
          http://snowolf.iteye.com/blog/1576818 

特别说明:一致性哈希配置(附件有个类配置参考) 

a:spring: 
<property name="sessionLocator">  
            <bean class="net.rubyeye.xmemcached.impl.KetamaMemcachedSessionLocator" />  
        </property>  
b:自己写程序: 

//使用一致性哈希(Consistent Hash Strategy)  true或false:允许配置是否兼容 nginx-upstream-consistent 
builder.setSessionLocator(new KetamaMemcachedSessionLocator(true)); 



1. 下载windows版本的Memcached:http://code.jellycan.com/memcached/ 



2.解压之后放在硬盘的目录下,如:D:\memcached . 然后在运行中输入cmd进入命令行,进入到Memcached.exe 所在的目录,例如:D:\memcached,然后输入: 


Cmd代码  收藏代码 
到memcached根目录 
1、安装 
memcached.exe –d install  

2、启动 
memcached.exe -d start 

此时memcached已经注册为开机启动服务 

完成安装。 


经实验使用命令修改端口无效,相应的解决方案是修改注册表: 

通过修改注册表来达到这个修改端口的目的。 

在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\memcached Server 下面找到一个 ImagePath 的字符串项,正好是服务的执行路径的字符串,双击该串,在后面加入 -l 192.168.1.135 -m 45 -p 12345 (访问ip为:192.168.1.135 使用45M内存,12345为端口),再启动服务。 




现在来试试是否可以连接: 

使用方法为“telnet ip 端口号”,登录后使用“stats”命令 
cmd下 
telnet 192.168.1.135 12345(注意:这里只能用IP 不能用 localhost 或127.0.0.1) 

然后使用:stats命令可以看到memcached的使用情况如下: 

STAT uptime 760 
STAT time 1311913149 
STAT version 1.2.1 
STAT pointer_size 32 
STAT curr_items 0 
STAT total_items 0 
STAT bytes 0 
STAT curr_connections 4 
STAT total_connections 6 
STAT connection_structures 5 
STAT cmd_get 0 
STAT cmd_set 0 
STAT get_hits 0 
STAT get_misses 0 
STAT bytes_read 63 
STAT bytes_written 793 
STAT limit_maxbytes 10485760 
END 




3、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 显示帮助 



4、最主要的一点,在windows下安装memcache通过命令行修改参数好像不起什么作用,需要进入注册表修改启动项参数才有用,具体操作如下:进入注册表,找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\memcached Server , 在其中有一个ImagePath 项,值为"d:\memcached\memcached.exe" -d runservice ,在后面加上-l 127.0.0.1 -m 3000 -c 2048 最后ImagePath 项值应该像这样: 


注册表值代码  收藏代码 

   1. d:\memcached\memcached.exe" -d runservice -l 127.0.0.1 -m 3000 -c 2048  

d:\memcached\memcached.exe" -d runservice -l 127.0.0.1 -m 3000 -c 2048 



5、memcached –d start 启动memcached服务,这样就将memcached的最大内存修改为了3000MB。 



对Memcached缓存服务的状态查询,可以先telnet连接上服务:telnet 127.0.0.1 11211 ,然后使用 stats命令查看缓存服务的状态,会返回如下的数据: 



time: 1255537291 服务器当前的unix时间戳 


total_items: 54 从服务器启动以后存储的items总数量 


connection_structures: 19 服务器分配的连接构造数 


version: 1.2.6 memcache版本 


limit_maxbytes: 67108864 分配给memcache的内存大小(字节) 


cmd_get: 1645 get命令(获取)总请求次数 


evictions: 0 为获取空闲内存而删除的items数(分配给memcache的空间用满后需 
要删除旧的items来得到空间分配给新的items) 


total_connections: 19 从服务器启动以后曾经打开过的连接数 


bytes: 248723 当前服务器存储items占用的字节数 


threads: 1 当前线程数 


get_misses: 82 总未命中次数 


pointer_size: 32 当前操作系统的指针大小(32位系统一般是32bit) 


bytes_read: 490982 总读取字节数(请求字节数) 


uptime: 161 服务器已经运行的秒数 


curr_connections: 18 当前打开着的连接数 


pid: 2816 memcache服务器的进程ID 


bytes_written: 16517259 总发送字节数(结果字节数) 


get_hits: 1563 总命中次数 


cmd_set: 54 set命令(保存)总请求次数 


curr_items: 28 服务器当前存储的items数量 



关于memcache 的一下疑问: 

memcached能接受的key的最大长度是多少? 
key 的最大长度是250个字符。需要注意的是,250是memcached服务器端内部的限制,如果您使用的客户端支持”key的前缀”或类似特性,那么 key(前缀+原始key)的最大长度是可以超过250个字符的。我们推荐使用使用较短的key,因为可以节省内存和带宽。 

memcached对item的过期时间有什么限制? 
过期时间最大可以达到30天。memcached把传入的过期时间(时间段)解释成时间点后,一旦到了这个时间点,memcached就把item置为失效状态。这是一个简单但obscure的机制。 

memcached最大能存储多大的单个item? 
1MB。如果你的数据大于1MB,可以考虑在客户端压缩或拆分到多个key中。 

为什么单个item的大小被限制在1M byte之内? 
啊…这是一个大家经常问的问题! 

简单的回答:因为内存分配器的算法就是这样的 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值