table of contents
- Tumbleweed 1.0021-1.3
- Leap-15.6
| Protocol::Redis(3) | User Contributed Perl Documentation | Protocol::Redis(3) |
NAME¶
Protocol::Redis - Redis protocol parser/encoder with asynchronous capabilities.
SYNOPSIS¶
use Protocol::Redis;
my $redis = Protocol::Redis->new(api => 1);
$redis->parse("+foo\r\n");
# get parsed message
my $message = $redis->get_message;
print "parsed message: ", $message->{data}, "\n";
# asynchronous parsing interface
$redis->on_message(sub {
my ($redis, $message) = @_;
print "parsed message: ", $message->{data}, "\n";
});
# parse pipelined message
$redis->parse("+bar\r\n-error\r\n");
# create message
print "Get key message:\n",
$redis->encode({type => '*', data => [
{type => '$', data => 'string'},
{type => '+', data => 'OK'}
]});
DESCRIPTION¶
Redis protocol parser/encoder with asynchronous capabilities and pipelining <http://redis.io/topics/pipelining> support.
APIv1¶
Protocol::Redis APIv1 uses "Unified Request Protocol <http://redis.io/topics/protocol>" for message encoding/parsing and supports methods described further. Client libraries should specify API version during Protocol::Redis construction.
"new"¶
my $redis = Protocol::Redis->new(api => 1);
Construct Protocol::Redis object with specific API version support. If specified API version not supported constructor should raise an exception. Client libraries should always specify API version.
"parse"¶
$redis->parse("*2\r\n$4ping\r\n\r\n");
Parse Redis protocol chunk.
"get_message"¶
while (my $message = $redis->get_message) {
...
}
Get parsed message or undef.
"on_message"¶
$redis->on_message(sub {
my ($redis, $message) = @_;
}
Calls callback on each parsed message.
"encode"¶
my $string = $redis->encode({type => '+', data => 'test'});
$string = $redis->encode(
{type => '*', data => [
{type => '$', data => 'test'}]});
Encode data into redis message.
"api"¶
my $api_version = $redis->api;
Get API version.
SUPPORT¶
IRC¶
#redis on irc.perl.org
DEVELOPMENT¶
Repository¶
http://github.com/und3f/protocol-redis
AUTHOR¶
Serhii Zasenko, "undef@cpan.org".
CREDITS¶
In alphabetical order
David Leadbeater (dgl)
Jan Henning Thorsen (jhthorsen)
Viacheslav Tykhanovskyi (vti)
Yaroslav Korshak (yko)
COPYRIGHT AND LICENSE¶
Copyright (C) 2011-2024, Serhii Zasenko.
This program is free software, you can redistribute it and/or modify it under the same terms as Perl 5.10.
| 2024-09-03 | perl v5.42.0 |