perlでredisを使う
redis-server のインストール
cpanmでモジュールを入れる。とりあえずバージョン指定はなしで。
$ cpanm Redis
ドキュメントの文量が中なかなかに多い。。
接続する
接続を試してとりあえず適当な値をset
use strict; use warnings; use utf8; use Redis; my $redis = Redis->new(server => 'localhost:6379'); $redis->set('foo', 100); $redis->set('bar', "Str"); print $redis->get('foo'), "\n"; #=> 100 print $redis->get('bar'), "\n"; #=> Str
Hash
use strict; use warnings; use utf8; use Data::Dumper; use Redis; use Redis::Hash; tie(my %hash, 'Redis::Hash', undef, (server => 'localhost:6379')); $hash{apple} = 100; $hash{banana} = 150; $hash{melon} = 500; print Dumper(\%hash); # Redis に保存されていることを確認 my $redis = Redis->new(server => 'localhost:6379'); print Dumper($redis->keys('*'));
配列
同様にして Redis::List を使う事で配列に tie する事もできる。
use strict; use warnings; use utf8; use Data::Dumper; use Redis; use Redis::List; tie(my @list, 'Redis::List', 'languages', (server => 'localhost:6379')); # 値の追加。 rpush が使われる push(@list, 'Perl'); push(@list, 'Ruby'); push(@list, 'Scala'); print Dumper(\@list); # 値の入れ替え。 lset が使われる $list[2] = 'Haskell'; print Dumper(\@list); # Redis に保存されていることを確認 my $redis = Redis->new(server => 'localhost:6379'); print Dumper($redis->lrange('languages', 0, -1));
終わり
redisの学習するついでにperlも復習。