Memcached部署常用设置
五、测试
服务端:
两台服务器,各启动两个进程,分配200M内存
启动参数:
/usr/local/bin/memcached -d -m 200 -u root -p 11211
/usr/local/bin/memcached -d -m 200 -u root -p 11212
监控启动:
perl/root/soft/memcache-top-v0.6--instances=192.168.175.100:11211,192.168.175.100:11212,192.168.175.101:11211,192.168.175.101:11212
基于spymemcached测试
1、 打开监控
2、 往memcached插入10000条数据
MemcachedClient c=new MemcachedClient(
AddrUtil.getAddresses(
"192.168.175.100:11211 192.168.175.100:11212
192.168.175.101:11211 192.168.175.101:11212"));
for(int i=0;i<10000;i++){
c.set("key_"+i, 3600, "value_"+i);
}
插入数据之后监控画面:
四个memcached服务都存在,读取监控也同上图。
取值代码:
MemcachedClient c=new MemcachedClient(
AddrUtil.getAddresses(
"192.168.175.100:11211 192.168.175.100:11212
192.168.175.101:11211 192.168.175.101:11212"));
for(int i=0;i<10000;i++){
String key = "key_"+i;
Object obj = c.get(key);
System.out.println(key+"="+obj);
}
3、 重启服务101:11212,再读取这10000个值,监控结果如下
说明某台服务器的数据丢失之后不会影响其它服务器的数据和读取。
4、 去掉某台服务,再读取这10000个值,监控结果如下
去掉服务101:11212,获取监控如下:
增加一个新的服务,101:11213,获取监控如下:
可见,节点的变化会影响命中率。