All Projects → Superbalist → php-pubsub-redis

Superbalist / php-pubsub-redis

Licence: MIT license
A Redis adapter for the php-pubsub package

Programming Languages

PHP
23972 projects - #3 most used programming language
Dockerfile
14818 projects
Makefile
30231 projects

Projects that are alternatives of or similar to php-pubsub-redis

php-pubsub
A PHP abstraction for the pub-sub pattern
Stars: ✭ 36 (+50%)
Mutual labels:  superbalist, php-pubsub
php-pubsub-kafka
A Kafka adapter for the php-pubsub package
Stars: ✭ 26 (+8.33%)
Mutual labels:  superbalist, php-pubsub
monolog-google-cloud-json-formatter
A Monolog extension for formatting log entries for Google Cloud Logging
Stars: ✭ 15 (-37.5%)
Mutual labels:  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)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].