Redis Deep Dive w/ a Ex-Meta Senior Manager

แชร์
ฝัง
  • เผยแพร่เมื่อ 6 ก.พ. 2025

ความคิดเห็น • 133

  • @eastsideGK
    @eastsideGK 7 หลายเดือนก่อน +63

    I've been waiting for videos on deep dives. More deep dives please!! These rock

  • @1234fewgfwe
    @1234fewgfwe 5 หลายเดือนก่อน +25

    1 more thing to add;
    sorted set, internally is implemented with skip lists and hashtables in Redis. Thats why adding value to sorted set is O(logN) on average and searching is O(logN + M). If you bring this up, congratulations you passed your interview

    • @abhijit-sarkar
      @abhijit-sarkar 2 หลายเดือนก่อน +5

      On the contrary, if I brought up this statement in an interview after having seen it on TH-cam, I just blew the interview. Any interviewer when faced with a candidate that is trying to impress by throwing out irrelevant buzzwords, will ask "oh yeah, tell me more about how to implement skip lists".

    • @bhawanasahu3000
      @bhawanasahu3000 หลายเดือนก่อน +3

      @@abhijit-sarkar couldn't agree more. Mentioning such points on your own always brings a follow up question, now I have to also read how skip lists works.

    • @400racr
      @400racr หลายเดือนก่อน

      @@bhawanasahu3000 i think if you know how it works under the hood and what implications that has on time complexity that is extremely good regardless if you have further deep knowledge of those further implementations..

  • @Global_nomad_diaries
    @Global_nomad_diaries 7 หลายเดือนก่อน +13

    Can't thank you enough. You made system design so much easier to understand.

  • @MarcosdeMouraSilva-f9l
    @MarcosdeMouraSilva-f9l 14 วันที่ผ่านมา

    That was too awesome! I'm using redis too much recently and have some core concepts that will help at daily basis. If you post more topics of that, just announce and you'll got a viewer. Great content.

  • @remipan4604
    @remipan4604 4 หลายเดือนก่อน +1

    Hi i just want to say your work is truly fantastic and you are an excellent educator! I started watching your videos to prepare for system design interviews and your explanations and examples are top notch.
    I'm motivated to continue watching not just to prep but also to expand my knowledge and improve my craft. Eagerly awaiting the great work you'll do next!

  • @rahulshrivastava3040
    @rahulshrivastava3040 5 หลายเดือนก่อน

    You are best channel for system design interview. Such a indepth technical understanding, I really appreciate you making these videos.

  • @troyfischer6786
    @troyfischer6786 4 หลายเดือนก่อน +1

    Echoing the existing sentiment in that this content is incredibly informative and well put together. Really appreciate your work

    • @hello_interview
      @hello_interview  4 หลายเดือนก่อน +1

      Glad it's been helpful! More soon.

  • @anipendakur
    @anipendakur 6 หลายเดือนก่อน

    Really cool deep dive, updated with time as well. Thanks a lot for making this. Looking forward to more!

  • @nbx-bi1sk
    @nbx-bi1sk 7 หลายเดือนก่อน +8

    Very informative and helpful video as always. I would appreciate if the visualization of the internals could be a bit more detailed and in sync with what you describe, rather than just a couple of boxes. Regardless, this is a refreshing take to step away from the usual system design videos to dive into technologies that are useful in both interviews and real life. Hope to see more of this in the future.

    • @hello_interview
      @hello_interview  7 หลายเดือนก่อน +1

      Good feedback, thank you! Will try to make the visuals more engaging in the future.

  • @riyaarora7517
    @riyaarora7517 7 หลายเดือนก่อน

    Just love the way you add practical aspects! Thankyou for the thoughtful, concise and articulate deep dive! Was definitely a high ROI on time :)

  • @sunderviswanathan9134
    @sunderviswanathan9134 3 วันที่ผ่านมา

    Insanely good explanations !

  • @SagarSood
    @SagarSood 7 หลายเดือนก่อน +3

    Loving the consistency of uploads! :)
    would love to see a deep dive on Kafka as well

    • @hello_interview
      @hello_interview  7 หลายเดือนก่อน +1

      Kafka is in the works! Written resource will be posted to the website this week or early next!

  • @henryso2717
    @henryso2717 6 หลายเดือนก่อน +1

    Great content. This is a great resource for learning before i apply Redis to my own projects. One thing I was wondering was if your content would be able to be added into Spotify so I could listen along on the go?

  • @Keyboardscholar
    @Keyboardscholar 5 หลายเดือนก่อน

    I really enjoy your content on the website, the videos as well as posts on reddit. Can you make another video on behavior/leadership principles interview next? I would like to learn how to tell a convincing story about my leadership potential.

  • @haribhatt34
    @haribhatt34 7 หลายเดือนก่อน +3

    Absolutely loved it !!!
    Can we have one deep dive on SQL vs NoSQL, a topic always asked in system design interview.

    • @hello_interview
      @hello_interview  7 หลายเดือนก่อน +1

      We actually have an opinion on that very topic, check this out: www.hellointerview.com/learn/system-design/in-a-hurry/key-technologies#core-database

  • @SlimJones62
    @SlimJones62 7 หลายเดือนก่อน +2

    Wait .... I thought I clicked on a Dua Lipa music video. 😀. Just kidding. Stefan I love this - clear, concise, articulate and I learned something. Keep 'em coming.

    • @hello_interview
      @hello_interview  7 หลายเดือนก่อน +1

      Lol. The intro is a banger, no :)?

  • @jordanhasnolife5163
    @jordanhasnolife5163 7 หลายเดือนก่อน +80

    Couldn't focus, too handsome

    • @hello_interview
      @hello_interview  7 หลายเดือนก่อน +8

      The GOAT has arrived and has something important to say!

    • @jordanhasnolife5163
      @jordanhasnolife5163 7 หลายเดือนก่อน

      @@hello_interview Gigachad onlyfans allocator (of) toes, that's very kind of you

    • @coledenesik
      @coledenesik 4 หลายเดือนก่อน +4

      Hey Jordan looks like you are getting your life back.

    • @jordanhasnolife5163
      @jordanhasnolife5163 4 หลายเดือนก่อน +5

      @@coledenesik unclear at best

  • @ItsMeIshir
    @ItsMeIshir 6 หลายเดือนก่อน

    It's a great deep dive. I'd like to give a suggestion, Can you guys add chapters to the video, so that, if I want to rewatch again about certain portion of the video then that would be easy thing to do.

    • @hello_interview
      @hello_interview  6 หลายเดือนก่อน +1

      You should have chapters on this one! If you look at the description "Key Moments" will take you to the relevant sections. LMK if we're not doing something else we should be doing!

    • @ItsMeIshir
      @ItsMeIshir 6 หลายเดือนก่อน +1

      @@hello_interview I see that, you missed to add "00:00" time stamp in your "Key moments", that's causing YT to not auto chaptering your video. I have checked couple of other videos in the channel, videos which are having 00:00 in their key moments, respective chapters are added.

  • @rahulbm
    @rahulbm 6 หลายเดือนก่อน +2

    Great content. Really liking it. Can you please do a deep dive on TiDB, Rocks DB and Cassandra too

  • @nishanthooda
    @nishanthooda 7 หลายเดือนก่อน +1

    Great watch! A similar deep dive video for Kafka would be amazing 🙏

    • @hello_interview
      @hello_interview  7 หลายเดือนก่อน +2

      Kafka is in the works! Written resource will be posted to the website this week or early next!

    • @nishanthooda
      @nishanthooda 7 หลายเดือนก่อน

      @@hello_interview amazing!

  • @SrinivasMuthukrishnan
    @SrinivasMuthukrishnan 2 หลายเดือนก่อน

    Fantastic video, thank you!😊

  • @Nnngao4231
    @Nnngao4231 4 หลายเดือนก่อน

    this video is awesome! exactly what I expected!

  • @adityakirankorlepara4500
    @adityakirankorlepara4500 7 หลายเดือนก่อน +1

    Excellent video. Please also make video on mock interviews

    • @hello_interview
      @hello_interview  7 หลายเดือนก่อน

      Mock interviews are what we do! What is it you want to see?

  • @kunalsharmain
    @kunalsharmain 6 หลายเดือนก่อน

    Loved it! Want to see more on how communication between service on global scale like using kafka with async or consistent connection around this please, if you get the idea, Sorry i am bad at explaining

  • @kiranpai8
    @kiranpai8 4 หลายเดือนก่อน

    Enjoyed both your videos on Kafka and Redis. Can you please make a video on CQRS?

  • @BlueBearOne
    @BlueBearOne หลายเดือนก่อน

    Really nice! Ty!

  • @1106hank
    @1106hank 10 วันที่ผ่านมา

    So is Redis pub/sub a type of hashmap? Can you explain how that's implemented inside redis?

  • @dashofdope
    @dashofdope 2 หลายเดือนก่อน

    so in terms of consumer groups subscribing to topics in a pub/sub system...
    can you summarize when to use Redis vs Kafka?

  • @aanurraj
    @aanurraj 7 หลายเดือนก่อน +6

    Can we have a deep dive on Apache Flink please ?

    • @hello_interview
      @hello_interview  7 หลายเดือนก่อน +3

      We'll put it on the list!

  • @nikolagrgic3773
    @nikolagrgic3773 3 หลายเดือนก่อน

    Thank you very much

  • @MQ.2000
    @MQ.2000 7 หลายเดือนก่อน +2

    At 22:55 how does hashing tweet IDs help if we're looking for the most liked tweets overall? Or were you referring to getting top liked tweets for specific keywords when splitting that key across multiple nodes?

    • @stefanmai9879
      @stefanmai9879 7 หลายเดือนก่อน +1

      The latter!

  • @Marcus-yc3ib
    @Marcus-yc3ib 4 หลายเดือนก่อน

    Hi, you talked about append a random number to solve the hotkey issue. But when you want to retrieve the data, you won't know the key because you append a random number.

  • @SK-rl3wu
    @SK-rl3wu 15 วันที่ผ่านมา

    How Redis maintains this cached data internally? does it maintains in some kind of tables or files?
    If I want to store 10GB of some relational data tables data or query output, should we need approximately same out of RAM for REDIS setup?
    Could you please provide the details how to understand the internals

    • @hello_interview
      @hello_interview  15 วันที่ผ่านมา +1

      Redis is an in-memory datastore, if you want to store 10GB of data in Redis, you need 10+GB of RAM, there's no paging out to disk. When operations happen they are added to an AOF (append-only file), but that's the full extent the disk is involved for garden variety Redis.

  • @ganeshkudva817
    @ganeshkudva817 7 หลายเดือนก่อน +2

    Can you please do deep dives on Kafka and Spark too ? I love your videos

    • @hello_interview
      @hello_interview  7 หลายเดือนก่อน

      Written deep dive on Kafka coming in a couple days!!

  • @artemkobeliev6042
    @artemkobeliev6042 7 หลายเดือนก่อน +4

    10:00 didn't quite catch how adding random suffix would solve hot node problem

    • @hello_interview
      @hello_interview  7 หลายเดือนก่อน

      Splits the hot shard into multiple, so you can distribute that load across nodes.

    • @nez14526
      @nez14526 6 หลายเดือนก่อน

      @@hello_interview sorry, what's the approach? I think somewhere else in the video talks about it, but I also somehow did not understand that.
      Is it roughly the following?
      Generate X random suffixes. Maintain a map on the (Redis') client side of .
      Whenever we want to do some sort of "write", we get a random suffix from our list and append it to our key in the Redis command.
      Whenever we want to do some sort of "read", we get _all_ random suffixes (X of them) from our set, make X reads from Redis, and aggregrate on the client side.
      ----
      Or maybe it's sometimes the opposite way. For example, in a cache, I'm guessing we'd want to write our value to each and every one of the key+randomsuffix.
      Then for a read, we can (randomly) pick one of the suffixes.
      ----
      Maybe the missing link (for me and others similarly confused) is how/where the random suffixes are managed.
      There's also the question of how we (automatically?) identify a hotkey, or develop an algorithm that generates (or increases) the number of suffixes depending on some sort of access rate.

    • @jain007neeraj
      @jain007neeraj 5 หลายเดือนก่อน +3

      @@hello_interview but how will you query the key then, as at read time you don't know what random suffix got added

    • @Xiao-p9m
      @Xiao-p9m 4 หลายเดือนก่อน

      @@hello_interview What if the new key conflicts with any keys added later?

    • @vedavyasa9542
      @vedavyasa9542 4 หลายเดือนก่อน

      @@Xiao-p9m How will it conflit, we append the certain value every single time so there wont be a conflict

  • @lesterdelacruz5088
    @lesterdelacruz5088 5 หลายเดือนก่อน +1

    What is the difference between Redis Pub/Sub and Kafka? From the other video, what I understand is Kafka is queue and event driven as well.

    • @hello_interview
      @hello_interview  5 หลายเดือนก่อน

      You can use Kafka as pub/sub! Differences in durability (Redis in memory, Kafka persists to disk), which then has consequences on other things like ease of disconnection, etc. But they can both be used.

    • @hello_interview
      @hello_interview  5 หลายเดือนก่อน

      Redis pub/sub is really dumb, at-most-once delivery of messages. You can think of it as a hashmap from a topic (string) to a socket connection to a subscribing server with all the associated problems (messages might get lost?) and benefits (incredibly lightweight, low-latency etc.)
      Kafka is more full-featured. Kafka has message persistence, you can make guarantees on delivery, etc.

    • @lesterdelacruz5088
      @lesterdelacruz5088 5 หลายเดือนก่อน

      Thank you.

  • @implemented2
    @implemented2 6 หลายเดือนก่อน

    One can imagine the implementation of the geo-spacial index using 2d indexing data structures - quad tree, R-tree and others.

  • @刘天旻
    @刘天旻 5 หลายเดือนก่อน

    Thanks so much for the video. I would be really interested in deep dive on elastisearch/opensearch

  • @davidoh0905
    @davidoh0905 6 หลายเดือนก่อน +8

    The problem of hot key is clear but solution of hashtag is very difficult to understand. do we have to handle that all in the client? like figure out what are the hot keys?? and what will adding hashtag do really?

  • @danishafzalkhan
    @danishafzalkhan 2 หลายเดือนก่อน

    Solid value.

  • @VIPINKUMAR-dr7vu
    @VIPINKUMAR-dr7vu 5 หลายเดือนก่อน

    Please make a video on Elastic Search

  • @hello_interview
    @hello_interview  7 หลายเดือนก่อน +12

    Re-upload, sorry! Stefan is a TH-cam noob.

    • @stefanmai9879
      @stefanmai9879 7 หลายเดือนก่อน +5

      Facts.

    • @aanurraj
      @aanurraj 7 หลายเดือนก่อน

      🤣

  • @ediancomachio2783
    @ediancomachio2783 7 หลายเดือนก่อน

    I have never clicked so fast!

  • @alpacasCodebytes
    @alpacasCodebytes 7 หลายเดือนก่อน

    Amazing Content.. Can't thank you enough!! Any Plans for DSA Mock Interviews 👀

    • @hello_interview
      @hello_interview  7 หลายเดือนก่อน

      What are you looking to see?

    • @alpacasCodebytes
      @alpacasCodebytes 7 หลายเดือนก่อน

      @@hello_interview DSA Mock Interviews with FAANG Candidates..

  • @LiaquathHassan
    @LiaquathHassan หลายเดือนก่อน

    Great video, what tool you're using for the drawing? I was looking for something simple and easy similar to this one, thanks.

  • @maxvettel7337
    @maxvettel7337 7 หลายเดือนก่อน

    It would be nice to see a Deep Dive video about location database. Pretty hard to understand for me

    • @hello_interview
      @hello_interview  7 หลายเดือนก่อน

      Which part is most confusing? Geohashing? Quad trees? Where to use them?

    • @maxvettel7337
      @maxvettel7337 7 หลายเดือนก่อน

      @@hello_interview Geohashing algorithm is too complex. I just cant take in all this diagrams. I also dont understand how proximity systems can search something inside the circle using square blocks of geohashes

    • @hello_interview
      @hello_interview  7 หลายเดือนก่อน

      @@maxvettel7337 Gotcha! I'll earmark this for follow-up. The nice thing is you don't necessarily need to know about the geohashing internals to use something like Redis' proximity search in practice!

  • @rogermarin1712
    @rogermarin1712 7 หลายเดือนก่อน +1

    Can i book sys design coaching sessions on hello interview or is it only for mock interviews?I'm a senior engineer and I've just started preparing do you recommend to jump straight into mocks?

    • @hello_interview
      @hello_interview  7 หลายเดือนก่อน

      Send us an email at support@hellointerview.com and we might be able to make something work. Have some products planned here for people in your shoes.

    • @rogermarin1712
      @rogermarin1712 7 หลายเดือนก่อน

      @@hello_interview done

  • @ColoradoLivingTheDream
    @ColoradoLivingTheDream 3 หลายเดือนก่อน

    Would a sorted set implementation be appropriate for a priority queue?

    • @hello_interview
      @hello_interview  3 หลายเดือนก่อน +1

      For many, yes. Depends a bit on the scalability requirements.

    • @ColoradoLivingTheDream
      @ColoradoLivingTheDream 3 หลายเดือนก่อน

      @@hello_interview Awesome, thanks so much for the quick response. I really appreciate what you guys are doing, this is a great resource and y'all rock!

  • @rushio8673
    @rushio8673 หลายเดือนก่อน

    at 9.38, don't understand appedning a random number to evenly distribute request across all the nodes in redis ? how does it work ?

    • @hello_interview
      @hello_interview  หลายเดือนก่อน +2

      In a cache setup you expect that sometimes you'll have a cache miss and have a way of handling it. If we have a key `foo` that is particularly hot, we can start appending a number 1-9 `foo1`, `foo2`, `foo3`, ... Each of these keys will reside on a different node/shard in the cluster. If the key is actually hot, all the keys will be written eventually and the reads will be spread across the nodes in the cluster.

    • @goodmew123
      @goodmew123 หลายเดือนก่อน

      ​@@hello_interview if we append this to all keys then it would reduce the effective size of our cache and would have a lot of cache misses. If we do only do this for keys that are "hot", then how do we detect if that key is hot since if we use a redis cache to keep track of how many times a key has been hit, we run into the same issue since that one redis partition is getting hit hard keeping track of the amount of times that key has been accessed.

    • @DF-ss5ep
      @DF-ss5ep วันที่ผ่านมา

      ​@@goodmew123I guess you would have to know beforehand. Also, there might be some heuristic for that, for example, if the number of likes on a recent tweet is high, then many people will be querying that number of likes.

  • @PrasannaRanganathan6078
    @PrasannaRanganathan6078 7 หลายเดือนก่อน

    Nice! Can you also do Deep Dive on Graph Databases(eg, neo4j) as well. please!

    • @hello_interview
      @hello_interview  7 หลายเดือนก่อน +1

      Will add it to the list! Typically, graph dbs are not as commonly used at scale.

  • @hazemabdelalim5432
    @hazemabdelalim5432 7 หลายเดือนก่อน

    But how will you handle the at most one delivery of redis in the case messaging?

    • @hello_interview
      @hello_interview  7 หลายเดือนก่อน

      Check out our Whatsapp guide for one example of this: www.hellointerview.com/learn/system-design/answer-keys/whatsapp

  • @armanmalik
    @armanmalik 7 หลายเดือนก่อน +4

    Why would I want to use Redis stream over something like Kinesis or Kafka streams

    • @hello_interview
      @hello_interview  7 หลายเดือนก่อน +1

      In practice? Substantially faster and cheaper if you can accept some of the (many) compromises. In an interview setting it can be helpful to have a few multifaceted tools vs having to know all about Kafka (video on that soon).
      If your business was entirely built around append-only logs I probably wouldn't take Redis as an acceptable substitute, though it works in a pinch.

  • @guidoscalise
    @guidoscalise 6 หลายเดือนก่อน

    Kafka next, please!

  • @joemiller1057
    @joemiller1057 2 หลายเดือนก่อน

    For hot key you really need to have caching in the service that's hitting Redis, unless you have a ton of hot keys a small LRU cache should work. Although this trades off some consistency unless you have a real short TTL :)
    - Dynamically sharding keys adds complexity to the application layer
    - Dynamically scaling read replica nodes seems wasteful (you dont need to duplicate the whole node)
    All solutions seem non optimal.

  • @Richard-yw9if
    @Richard-yw9if 4 หลายเดือนก่อน

    Why not talking about cache invalidation when using as a cache?

  • @womanwithtoomanyhobbies
    @womanwithtoomanyhobbies 4 หลายเดือนก่อน

    Finding it difficult to understand stream and consumer group

  • @flyingpiggy741
    @flyingpiggy741 5 หลายเดือนก่อน

    Could Even cover Redis again?

    • @hello_interview
      @hello_interview  5 หลายเดือนก่อน

      Nah, this explanation is killer. Couldn’t do it better if I tried!
      -Evan

    • @flyingpiggy741
      @flyingpiggy741 5 หลายเดือนก่อน

      @@hello_interviewPlease

    • @flyingpiggy741
      @flyingpiggy741 5 หลายเดือนก่อน

      @@hello_interview at least we can highlight the knowledge point . Have some summary on the diagram

    • @flyingpiggy741
      @flyingpiggy741 5 หลายเดือนก่อน

      14:40 the nice thing about this stream is if we have got something we need to make sure all of the items of the stream are processed, the redis give us a bunch of premitives to work with. What does this mean?

    • @Richard-yw9if
      @Richard-yw9if 4 หลายเดือนก่อน

      I agree with you . This is the first out of ten video I felt I learned nothing after watching in this channel

  • @anuragtiwari3032
    @anuragtiwari3032 7 หลายเดือนก่อน

    I see , I like.

  • @adithyar3160
    @adithyar3160 4 หลายเดือนก่อน +1

    this video is too high level..need more simpler deep dive on redis if possible

    • @hello_interview
      @hello_interview  4 หลายเดือนก่อน

      Which part did you miss? Maybe we can point you in the right direction.

  • @EranM
    @EranM หลายเดือนก่อน

    4:24 - Did I hear a piano? Are you a fellow Pianist my friend?

    • @hello_interview
      @hello_interview  หลายเดือนก่อน

      You may have, but if you did it's a 5 year old banging keys not me :)

  • @XxXx-sc3xu
    @XxXx-sc3xu 4 หลายเดือนก่อน

    Format reminds me of acloudguru

  • @flyingpiggy741
    @flyingpiggy741 5 หลายเดือนก่อน

    I missed the co founder now

  • @randyorton06
    @randyorton06 6 หลายเดือนก่อน

    do a deepdive on ethereum latest version, l2 rollups

  • @ayushjindal4981
    @ayushjindal4981 3 หลายเดือนก่อน

    I had to struggle with the accent. Can I pls request to speak a bit slower and maybe a bit more clear accent, if possible. Thanks!

  • @dafivers4127
    @dafivers4127 3 หลายเดือนก่อน

    brah why do you use so much big words. lmao slow down with the vocabs damn.