前回,
なお,
データの保存・取得とリクエストの転送
memcachedでは,
一方Kaiでは,
では,
次のようなPerl Scriptを用意し,
リスト1 kai_
#!/usr/bin/env perl
use strict;
use warnings;
use Test::More tests => 3;
use Cache::Memcached;
my $set_only_mem = Cache::Memcached->new({
servers => [map {'127.0.0.1:1121' . $_} (1..3)],
});
$set_only_mem->set(foo => 'bar', 0,); # Consistent Hashing により一つのノードを選択し,データを保存する
for (1..3) {
my $get_only_mem = Cache::Memcached->new({
servers => ['127.0.0.1:1121' . $_],
});
is $get_only_mem->get('foo'), 'bar'; # 全てのノードから同じ値が取得できる
}
memcachedと異なり,
では,
$ perl /path/to/cluster_test.pl 1..3 ok 1 ok 2 ok 3
このような実行結果となれば,
ノードの追加・除去による自動データ再配置
memcachedでは,
一方Kaiでは,
では,
まず始めに,
$ /path/to/make_kai_config.sh 4
続けて,
$ /path/to/start_kai.sh kai4
次に,
$ /path/to/remsh.sh kai1 Erlang R13B (erts-5.7.1) [source] [64-bit] [smp:2:2] [rq:2] [async-threads:0] [hipe] [kernel-poll:false] Eshell V5.7.1 (abort with ^G) (kai1@centos)1> kai_rpc:check_node({{127,0,0,1}, 11011}, {{127,0,0,1}, 11014}). % (a) ok (kai1@centos)2> kai_rpc:check_node({{127,0,0,1}, 11014}, {{127,0,0,1}, 11011}). % (b) ok (kai1@centos)3> <- 作業が終わったので,local shell に切り替える User switch command --> s --> c Eshell V5.7.1 (abort with ^G) (kai_controller@centos)1> q(). ok
前回は,
まず (a) で,
node_
各ノードは定期的に,
最後に (b) で,