AnyEvent-RipeRedis

 view release on metacpan or  search on metacpan

examples/subs.pl  view on Meta::CPAN

#!/usr/bin/perl

use strict;
use warnings;

use AnyEvent;
use AnyEvent::RipeRedis;

my $cv = AE::cv;

my $redis = AnyEvent::RipeRedis->new(
  host     => 'localhost',
  port     => 6379,
  password => 'redis_pass',

  on_connect => sub {
    print "Connected to Redis server\n";
  },

  on_disconnect => sub {
    print "Disconnected from Redis server\n";
  },
);

my @channels = qw( foo bar );
my @patterns = qw( info_* err_* );

# Subscribe to channels by name
$redis->subscribe( @channels,
  { on_reply => sub {
      my $reply = shift;
      my $err   = shift;

      if ( defined $err ) {
        warn $err->message . "\n";
        return;
      };

      print 'Subscribed on: ' . join( ', ', @channels ). "\n";
    },

    on_message => sub {
      my $message = shift;
      my $channel = shift;

      print "$channel: $message\n";
    },
  }
);

# Subscribe to channels by pattern
$redis->psubscribe( @patterns,
  { on_reply => sub {
      my $reply = shift;
      my $err   = shift;

      if ( defined $err ) {
        warn $err->message . "\n";
        return;
      };

      print 'Subscribed on: ' . join( ', ', @patterns ). "\n";
    },

    on_message => sub {
      my $message = shift;
      my $pattern = shift;
      my $channel = shift;

      print "$pattern ($channel): $message\n";
    },
  }
);



( run in 0.648 second using v1.01-cache-2.11-cpan-e1769b4cff6 )