Redis Pub/Sub
Real-time Redis pub/sub explained and implemented
What is Pub/Sub?
Pub/Sub stands for Publish / Subscribe and it is a messaging paradigm.
Here we have a group of clients subscribing to specific channels and a group of clients publishing to specific channels as well. This happens in real-time and Redis supports it very well.
Senders are called Publishers, responsible for publishing these messages to specific channels, and the receivers are called Subscribers who subscribe to these channels to receive messages.
To install Redis on your local terminal, follow the below article:
https://redis.io/docs/getting-started/installation/install-redis-on-mac-os/
Let’s discuss the format of pushed messages
A message is an array with three elements.
The first element is the kind of message:
subscribe
: means that we successfully subscribed to the channel given as the second element in the reply. The third argument represents the number of channels we are currently subscribed to (as shown in the screenshot below)
unsubscribe
: means that we successfully unsubscribed from the channel given as the second element in the reply. The third argument represents the number of channels we are currently subscribed to. Here we got 0 in the below screenshot as I earlier unsubscribed to the ch1 channel which is not captured in the screenshot.
When the last argument is zero, we are no longer subscribed to any channel, and the client can issue any kind of Redis command as we are outside the Pub/Sub state.
message
: it is a message received as a result of a PUBLISH command issued by another client. Here done by 0.0.0.0 on ch1 for a message “hie there”.
- The second element is the name of the originating channel here as ch1 or ch2 in the below screenshot, and the third argument is the actual message payload which comes as “hie there” and “welcome to redis pub/sub”.
To read more on the pub/sub architecture you can read these awesome articles:
https://www.enjoyalgorithms.com/blog/publisher-subscriber-pattern