Redis events are fire-and-forget. If no one is listening, they will just remain undetected. There's no history. But nowhere on the internet did I find anything that answers the following question (I'm using redis-py and aioredis for python):
Does the code actually need to LISTEN to the events to receive it or will the redis connection cache events for me?
Let's suppose I have this loop:
redis_db = Redis(...)
while True:
print("Hey, I'm listening now!")
msg = redis_db.blocking_subscribe("some_topic") # pseudo-code, because I'm using various libraries
if msg == "calc":
do_a_heavy_5_seconds_calculation()
print("YAY, I was busy and am back up now!")
So will I miss all events that occur in the 5s calculation or will my redis_db
cache them for me?
In other words... does fire-and-forget apply if I don't have a connection or if I have a connection, but am not listening ?