rohit20001221
Posted on March 27, 2022
Hi guys i am here with an another blog post now let us build a simple publish subscribe system using python and redis
Running the redis server
i am using docker to start a redis instance in my computer. it's very easy to run a redis instance using docker and also it's very easy to remove redis instance, and the fun part is redis running through docker would not affect our system π
running redis instance
docker run --name demo-redis -p 6379:6379 -d redis:alpine
if you want to stop or remove redis instance running through above command you can do the following
docker container stop demo-redis # <-- stop the redis instance
docker container rm demo-redis # <-- remove the redis container
Creating the publisher
import redis
# initializing the redis instance
r = redis.Redis(
host='127.0.0.1',
port=6379,
decode_responses=True # <-- this will ensure that binary data is decoded
)
while True:
message = input("Enter the message you want to send to soilders: ")
r.publish("army-camp-1", message)
let's think publisher as a commander
in army and he wants to send message to the soilders so here the the topic that he wants to publish message is army-camp-1
. this analogy is only for fun π
Creating the subscriber
import redis
r = redis.Redis(
host='127.0.0.1',
port=6379,
decode_responses=True
)
# pubsub() method creates the pubsub object
but why i named it mobile π§
just kidding π think of it as the waki taki that listens for incomming messages
mobile = r.pubsub()
# use .subscribe() method to subscribe to topic on which you want to listen for messages
mobile.subscribe('army-camp-1')
# .listen() returns a generator over which you can iterate and listen for messages from publisher
for message in mobile.listen():
print(message) # <-- you can literally do any thing with this message i am just printing it
Here is a demo video of running the above code
Posted on March 27, 2022
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.