Thanks for this simple and straighforward explanation. I noticed that Redis Channels are a better solution than Rabbit MQ in smaller companies that don't have a solid infrastructure.
Great content brother.. I need to implement a redis pub-sub at work and i do not have that experience. I am gonna use this video as my reference to get started!!
0:46 - "these are the logs coming from the subscriber and these are the logs coming from the publisher" We don't see your cursor in the video. I assume the left window is the publisher and the right window is the subscriber. 0:58 - "[...] using rediSH channels. If you are not familiar with rediS, [...]" This is nitpicking, but what is the correct pronunciation? Is it both okay?
I am surprised I am so unsed to Javascript I noticed the use of Visual Studio but it was off some how not to see vscode... it took me a few minutes before realizing it was C# LoL
Would like to see how this could be used in a distributed system with multiple subscribers to balance load but with each message being processed at most once. In your example with two subscribers each message was getting processed twice. I’m in a system where I don’t control the publisher, but would like to have more than one subscriber to balance the load of processing the data, but don’t want to waste compute by processing each message more than once.
That's how this works - all subscribers will handle the message. You could implement a central idempotency store to check if the message was already processed or not.
Hi Milan, Thanks for the great video. I have a question though. What will happen if the publisher published the messages but the subscribing applications only run a day after? Where will the messages be stored and is it possible to get all the messages at once?
You could have an api service that sends the messages to redis and to another resource to persist. I'm not sure what an easy to use persistence mechanism would be, and I thought redist might have queues
@@TheScriptPunk The thing is I'm looking for a service that can avoid using an API endpoint to subscribe to/store messages. As I think what would be the point of using a notification service but then you still have to create APIs for storing the messages. Wouldn't it be easier to just create a message using an API endpoint than going through many setup for Redis or any other service like AWS SNS/SQS? I don't have any issue with that approach but my manager would definitely argue like that. He wanted me to design the whole notification system for our desktop app and I'm stuck... :((
I have erros : Severity Code Description Project File Line Suppression State Details Error CS0618 'RedisChannel.implicit operator RedisChannel(string)' is obsolete: 'It is preferable to explicitly specify a PatternMode, or use the Literal/Pattern methods' Application.How to fix it
Want to master Clean Architecture? Go here: bit.ly/3PupkOJ
Want to unlock Modular Monoliths? Go here: bit.ly/3SXlzSt
Hi milan , can u do video on dapr pub sub
@@sujitbhandarkar886 I'm planning to do a few videos on Dapr
@@MilanJovanovicTech what about google pub/sub ?
Thank u .I started learning Reddis database.. for each usecase of reddis I found ur demo thanks for sharing your knowledge
Glad it was helpful! Redis is very fun
Thanks for this simple and straighforward explanation. I noticed that Redis Channels are a better solution than Rabbit MQ in smaller companies that don't have a solid infrastructure.
If you can risk losing messages 😁
Great job, Milan! Your explanation was clear and concise.
Glad it was helpful!
Great content brother.. I need to implement a redis pub-sub at work and i do not have that experience. I am gonna use this video as my reference to get started!!
Go for it!
thank you! very useful information
Awesome, glad you liked it!
Thanks for the content
Glad you liked it :)
Thank you somuch bro
No problem
that's actually great!
The use cases are somewhat limited, but it's interesting
thank you!
You're welcome!
0:46 - "these are the logs coming from the subscriber and these are the logs coming from the publisher"
We don't see your cursor in the video. I assume the left window is the publisher and the right window is the subscriber.
0:58 - "[...] using rediSH channels. If you are not familiar with rediS, [...]"
This is nitpicking, but what is the correct pronunciation? Is it both okay?
RediS
thanks, do you use much about MassTransit? for Azure service bus
I have a blog with the .NET SDK: www.milanjovanovic.tech/blog/messaging-made-easy-with-azure-service-bus
@@MilanJovanovicTech thank you
I am surprised I am so unsed to Javascript I noticed the use of Visual Studio but it was off some how not to see vscode... it took me a few minutes before realizing it was C# LoL
C# and JavaScript are pretty similar 😁
Would like to see how this could be used in a distributed system with multiple subscribers to balance load but with each message being processed at most once. In your example with two subscribers each message was getting processed twice.
I’m in a system where I don’t control the publisher, but would like to have more than one subscriber to balance the load of processing the data, but don’t want to waste compute by processing each message more than once.
That's how this works - all subscribers will handle the message. You could implement a central idempotency store to check if the message was already processed or not.
@@MilanJovanovicTech That is what I’m saying I’d like to see.
I'm here =))
We're all here
Would you consider using redis as a message broker in production? Or does it have some obvious cons compared to rabbitmq, or azure service bus?
Not a good for a "real" message broker. It can be used if you can allow message loss, which is not acceptable for a proper message broker usage.
Hi Milan, Thanks for the great video. I have a question though. What will happen if the publisher published the messages but the subscribing applications only run a day after? Where will the messages be stored and is it possible to get all the messages at once?
The messages will be lost. Redis doesn't persist the messages.
You could have an api service that sends the messages to redis and to another resource to persist.
I'm not sure what an easy to use persistence mechanism would be, and I thought redist might have queues
@@TheScriptPunk The thing is I'm looking for a service that can avoid using an API endpoint to subscribe to/store messages. As I think what would be the point of using a notification service but then you still have to create APIs for storing the messages. Wouldn't it be easier to just create a message using an API endpoint than going through many setup for Redis or any other service like AWS SNS/SQS? I don't have any issue with that approach but my manager would definitely argue like that. He wanted me to design the whole notification system for our desktop app and I'm stuck... :((
@@ThiNguyen-bm5ln I think redis offers a feature that fits what your needs are
@@ThiNguyen-bm5ln you can use event queues or whatever they're called.
Leverage both the channel and use the queue to catch up or something.
can we publish binary images with json to redis channels? Great vids by the way, I watch your channel and I'm a huge fan.... thanks!
I never tried it 😁 The theoretical max message size is ~20MB from what I can find
@@MilanJovanovicTech thanks
Is it possible to publish message without getting subscriber so that it can be broadcasted to everyone?
It does publish to everyone
Lava lamp ♥
Ha, someone noticed 😁
Hi milan, can u do video on dapr pub sub
Yes, I wanted to explore Dapr 😁
I have erros : Severity Code Description Project File Line Suppression State Details
Error CS0618 'RedisChannel.implicit operator RedisChannel(string)' is obsolete: 'It is preferable to explicitly specify a PatternMode, or use the Literal/Pattern methods' Application.How to fix it
Deprecated method?
👋