使用 Redis 来自 Perl
我尝试使用Perl连接到Redis的Redis库。
安装 Redis 服务器
我使用了以下的方式来安装它,因为我是用的Ubuntu。
% sudo apt-get install redis-server
% redis-server -v
Redis server v=2.8.4 sha=00000000:0 malloc=jemalloc-3.4.1 bits=64 build=a44a05d76f06a5d9
% sudo service redis-server status
redis-server is running
Redis 模块的安装
% cpanm Redis
% perl -MRedis -le 'print $Redis::VERSION'
1.981
使用Perl进行连接
首先,试着按常规使用。
Redis库和大多数其他语言库一样,实现了与Redis命令同名的方法。
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
将其与哈希关联以使用
通过使用 Redis::Hash,可以将其与 Hash 绑定在一起。
这样,就可以使用与常规 Hash 访问相同的代码将数据保存在 Redis 上。
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,也可以将其与数组关联起来。
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));
请参考
我查询了Perl的Redis库 – Shogo的博客
http://shogo82148.github.io/blog/2013/08/24/perl-redis-libraries/