Pub/Sub е синхронна комуникация. Всички страни трябва да бъдат активни едновременно, за да могат да комуникират. Тук Redis е чист брокер за синхронни съобщения.
Отговорът на първите ви три въпроса е не. Няма постоянство на съобщенията, нито на диска, нито в паметта. Когато съобщението е публикувано, то се изпраща до абонираните в момента клиентски връзки. Командата PUBLISH ще върне незабавно броя клиенти, получили съобщението:O(N+M), където N е броят на клиентите, абонирани за приемащия канал, а M е общият брой абонирани модели (от всеки клиент).
... но забелязвам, че ако не работя и се свържа отново, мога да получа темите, когато се върна онлайн
R/ Предполагам, че зависи от това какво имаш предвид с „Спаднах ". Съобщението трябва да е кеширано някъде във вашия клиент. Или може би клиентската връзка в Redis Server все още е била жива и съобщението е било там в клиентския изходен буфер.
Може да намерите тези ресурси за полезни:
Какви са основните разлики между Redis Pub/Sub и Redis Stream?
Pub/Sub