Memcached 学习笔记(三)——多节点测试
一,启动两个(或者多个)节点:
memcached -d -p 11212 -u nobody -c 1024 -m 64 memcached -d -p 11213 -u nobody -c 1024 -m 64
查看一下进程树:
二,用Ruby测试多个memcached节点:
$KCODE='u' require "rubygems" require "memcache" require "logger" server=['localhost:11211','localhost:11212','localhost:11213'] option={ :logger=>Logger.new(STDOUT) } cache=MemCache.new(server,option) cache['key1']=123 cache['key2']="ABCDE" cache['key3']=%w(hoge fuga) cache['key4']={:foo=>1,:bar=>"a"} p cache['key1'] p cache['key2'] p cache['key3'] p cache['key4']
其运行结果如下图:
从图中可以看到,对于多个节点的测试,图中红色部分key2,key3都写入11211节点中;绿色部分key1写入到11212节点中,蓝色部分key4写入到了11213节点中。
三,模拟失去一个节点
require "rubygems" require "memcache" require "logger" server=['localhost:11212','localhost:11213'] option={ :logger=>Logger.new(STDOUT) } cache=MemCache.new(server,option) cache['key1']=123 cache['key2']="ABCDE" cache['key3']=%w(hoge fuga) cache['key4']={:foo=>1,:bar=>"a"} p cache['key1'] p cache['key2'] p cache['key3'] p cache['key4']
在上面的代码中,我们在
server=['localhost:11212','localhost:11213']
去掉了一个节点'localhost:11211',执行结果如下图:
可以看到,当丢掉一个节点后,key1,key2,key3的数据都写到了11212节点上,key4的值写到了11213节点上。