のみまくし日記

毎日が文化祭の前日、そんな環境っていいですよね。この日記は未来の自分へのメッセージです。

2006年05月01日 ()

続・memcachedで新しくキャッシュを保存できないの刑

memcachedが古い順から消えないってのは、オレの勘違いでした。お騒がせしました。すんません。

んでは、昨日起きていた、キャッシュに保存されなくなっちゃう現象はなんだったんかなーとおもって、もうちょっと検証。テストの結果だけからの推測だけど、使い切るとおかしくなっちゃうのかなー。それとも使い方がおかしいのかな。

ま、いずれにしても -m オプションは注意っていうことで。

テストスクリプト

id:nipotanがテストしたスクリプトをちょっと改造してキャッシュしておく文字数と、何コ保存するかを調整出来るようにしたもの。

use strict;
use Cache::Memcached;

my $size  = $ARGV[0] || 1;
my $count = $ARGV[1] || 10;

my $cache = Cache::Memcached->new({
    servers => ['localhost:11211'],
    debug   => 0,
});

# XXX get immediately after storing
for my $key (0 .. $count) {
    $cache->delete($key);
    $cache->set($key => '.' x $size);
    my $stored = $cache->get($key);
    print "$key :", length($stored), "\n";
}

sleep 1;

# XXX get stored
for my $key (0 .. $count) {
    my $stored = $cache->get($key);
    print "$key :", length($stored), "\n";
}

念のため、再起動。

[zsh takefumi@tinko]$ sudo /etc/init.d/memcached stop
[zsh takefumi@tinko]$ sudo /etc/init.d/memcached start

1文字保存、10回繰り返し

[zsh takefumi@tinko]$ perl memcached.pl 1 10
0 :1
1 :1
2 :1
3 :1
4 :1
5 :1
6 :1
7 :1
8 :1
9 :1
10 :1
0 :1
1 :1
2 :1
3 :1
4 :1
5 :1
6 :1
7 :1
8 :1
9 :1
10 :1

2文字保存、10回繰り返し。

上書きされる。

[zsh takefumi@tinko]$ perl memcached.pl 2 10
0 :2
1 :2
2 :2
3 :2
4 :2
5 :2
6 :2
7 :2
8 :2
9 :2
10 :2
0 :2
1 :2
2 :2
3 :2
4 :2
5 :2
6 :2
7 :2
8 :2
9 :2
10 :2

もっぺん。再起動。

[zsh takefumi@tinko]$ sudo /etc/init.d/memcached stop
[zsh takefumi@tinko]$ sudo /etc/init.d/memcached start

メモリ使い切っちゃえ。

古い順から消えるよ。(id:nipotanのテストと同じ結果)

[zsh taekfumi@tinko]$ perl memcached.pl 200000 10
0 :200000
1 :200000
2 :200000
3 :200000
4 :200000
5 :200000
6 :200000
7 :200000
8 :200000
9 :200000
10 :200000
0 :0
1 :0
2 :0
3 :0
4 :0
5 :0
6 :0
7 :200000
8 :200000
9 :200000
10 :200000

1文字保存、10回繰り返し。

上書きされるとおもきやされない。

[zsh takefumi@tinko]$ perl memcached.pl 1 10
0 :0
1 :0
2 :0
3 :0
4 :0
5 :0
6 :0
7 :0
8 :0
9 :0
10 :0
0 :0
1 :0
2 :0
3 :0
4 :0
5 :0
6 :0
7 :0
8 :0
9 :0
10 :0

新しくも保存出来ないの。

[zsh takefumi@tinko]$ perl memcached.pl 1 15
0 :0
1 :0
2 :0
3 :0
4 :0
5 :0
6 :0
7 :0
8 :0
9 :0
10 :0
11 :0
12 :0
13 :0
14 :0
15 :0
0 :0
1 :0
2 :0
3 :0
4 :0
5 :0
6 :0
7 :0
8 :0
9 :0
10 :0
11 :0
12 :0
13 :0
14 :0
15 :0

Perl PC posted by takefumi | この日記へリンク | コメント(0) | トラックバック(2)

この日記へのトラックバック

昨日、memcached の話がありましたが、その後、 のみまくし日記 - 続・memcachedで新しくキャッシュを保存できないの刑 のテストコードが再現した後、miyagawa さんが subtechグループ - Bulknews::Subtech - memcached というエントリを書いていて、id:ikebe ....

memcached 【にぽたん研究所】 at 2008年12月02日 21時56分

単一サーバで提供している社外向けの PHP サイトアクセスが増大してきた(厳密に言うと、アプリケーション数が増大してきた)ので、そろそろ負荷分散を考えなければならなくなってきた。 PHP セッションを複数サーバで共有するというと、セッション情報をどこに入れるか、と...

memcached で PHP セッションを共有してみる 【お仕事日記】 at 2008年12月02日 21時56分

この日記へのコメント