Superbalist / php-pubsub-redis

A Redis adapter for the php-pubsub package
MIT License
25 stars 13 forks source link
php php-pubsub php-pubsub-redis redis superbalist

php-pubsub-redis

A Redis adapter for the php-pubsub package.

Author Build Status StyleCI Software License Packagist Version Total Downloads

Installation

composer require superbalist/php-pubsub-redis

Usage

$client = new Predis\Client([
    'scheme' => 'tcp',
    'host' => '127.0.0.1',
    'port' => 6379,
    'database' => 0,
    'read_write_timeout' => 0
]);

$adapter = new \Superbalist\PubSub\Redis\RedisPubSubAdapter($client);

// consume messages
// note: this is a blocking call
$adapter->subscribe('my_channel', function ($message) {
    var_dump($message);
});

// publish messages
$adapter->publish('my_channel', 'HELLO WORLD');
$adapter->publish('my_channel', ['hello' => 'world']);
$adapter->publish('my_channel', 1);
$adapter->publish('my_channel', false);

// publish multiple messages
$messages = [
    'message 1',
    'message 2',
];
$adapter->publishBatch('my_channel', $messages);

Examples

The library comes with examples for the adapter and a Dockerfile for running the example scripts.

Run make up.

You will start at a bash prompt in the /opt/php-pubsub directory.

If you need another shell to publish a message to a blocking consumer, you can run docker-compose run php-pubsub-redis /bin/bash

To run the examples:

$ php examples/RedisConsumerExample.php
$ php examples/RedisPublishExample.php (in a separate shell)