This is why you need caching

Поділитися
Вставка
  • Опубліковано 3 гру 2024
  • Be sure to checkout upstash.com/?u... if you want to set up globally enabled caching in your applications.
    📘 T3 Stack Tutorial: 1017897100294....
    🤖 SaaS I'm Building: www.icongenera...
    💬 Discord: / discord
    🔔 Newsletter: newsletter.web...
    📁 GitHub: github.com/web...
    📺 Twitch: / webdevcody
    🤖 Website: webdevcody.com
    🐦 Twitter: / webdevcody

КОМЕНТАРІ • 63

  • @TedMosby-fk5gj
    @TedMosby-fk5gj Рік тому +7

    I implemented this in my app Cody! When i logged the times using the cache, vs without, it was at least 80 percent faster. Devs like you and Josh Tried Coding are a blessing, teaching us advanced topic to implement in our projects.

  • @insensibility
    @insensibility Рік тому +14

    Grats on sponsorship!

  • @joshtriedcoding
    @joshtriedcoding Рік тому +7

    You do custom thumbnails now! Super interesting topic, thanks for sharing. Got a good experience with upstash as well, very handy for serverless

    • @WebDevCody
      @WebDevCody  Рік тому +3

      I usually only do thumbnails for my sponsored videos, but I may try doing them for all videos if they start improving click through rate

  • @i3looi2
    @i3looi2 3 місяці тому +1

    Keep in mind, this is always dependent on what kind of data you deliver from database.
    Example1: if you deliver a list of blog posts (which basically a new post appears once/day) .. this is perfect scenario ! But you still have to do update-hooks (for cases where a post was removed; so it does not ghost for another 24h inside the redis cache)
    Exemple2: if you deliver messages from a roomchat (which basically can change < 1/s depending on how many users there are in the room) .. this is useless to cache.
    Also, most modern databases already have a caching layer in place. So, IMO , for most use cases , redis is obsolete and just another thing to take care of because adds to project complexity.

  • @TheEchinox
    @TheEchinox Рік тому +3

    If you keep this up, you're gonna become the most important tech/eng youtuber out there. No doubt. Keep it up!

  • @emmanuelezeagwula7436
    @emmanuelezeagwula7436 Рік тому

    I love that you get straight to the point

  • @eshw23
    @eshw23 Рік тому

    Insanely helpful man, im definately going to add redis for my saas

  • @sumitwadhwa8823
    @sumitwadhwa8823 Рік тому +1

    redis on a remote server that I need to reach out to every time my api is hit, bugs me. why?

  • @jmaicaaan
    @jmaicaaan Рік тому +3

    Thank you for this great tutorial! I would like to ask how would you handle invalidation or returning the data if there's like pagination involved? Do you set the cache key as the composite of "domainId" + pagination options like limit and page? (eg: post_page1_limit25)

  • @DrifterXx22
    @DrifterXx22 Рік тому

    heya Cody! this is a good thumbnail for the video! keep up the good work!

    • @WebDevCody
      @WebDevCody  Рік тому +1

      thanks, I can make decent thumbnails, and I have a couple more coming soon to test out how they perform

  • @SonAyoD
    @SonAyoD Рік тому

    I need to take a look at this. Thanks

  • @martinthomas8955
    @martinthomas8955 Рік тому +1

    What I don't understand is if cache exists for the user and you return that instead, at what point will they get the latest data if they are only getting the outdated cached data returned?

    • @WebDevCody
      @WebDevCody  Рік тому +1

      You can set a timer to expire it. If you need the latest data for users every request then don’t use a cache

    • @martinthomas8955
      @martinthomas8955 Рік тому

      @@WebDevCody ah that sounds interesting. Thanks that clears it up.

  • @abubakar-emumba
    @abubakar-emumba Рік тому

    Hi, I need guidance around what tools and technologies are expected from a 3 years experienced frontend (react.js) developer.

  • @Arthurk346
    @Arthurk346 9 місяців тому

    I used to have Django REST with Redis caching and our Redis was making a copy of its db to a disk. And suddenly we ran out of storage and the API didn't work anymore lol

  • @mfucek_
    @mfucek_ 10 днів тому

    What's the benefit of using Redis instead of hacking a custom in-memory caching solution? I am working with around 24MB max updated every hour or so.

    • @WebDevCody
      @WebDevCody  10 днів тому +1

      Redis allows you to have a shared caching service, meaning you can scale multiple web services behind a load balancer. In memory would limit to 1 machine

    • @mfucek_
      @mfucek_ 10 днів тому

      @@WebDevCody Meaning - if I have a single server serving the backend in-memory is okay, but if I use edge/multiple instances of same server then Redis is preferred, gotcha, thanks for the reply! ❤️

  • @streamocu2929
    @streamocu2929 Рік тому

    love your content... thank you

  • @hasaniqbal233
    @hasaniqbal233 Рік тому

    Hey Cody, are you going to continue the Mantine course platform series?

    • @WebDevCody
      @WebDevCody  Рік тому

      Absolutely, ijust needed to get a couple videos out first

    • @hasaniqbal233
      @hasaniqbal233 Рік тому

      @@WebDevCody Great! Will be waiting eagerly :)

  • @ibrahimmohammed3484
    @ibrahimmohammed3484 Рік тому

    I've a question, why do we need trpc or an end point and not just use prisma client directly on our server component? or do we still need to have an endpoint?

    • @WebDevCody
      @WebDevCody  Рік тому +1

      You could add your database calls directly inside your react server components if you want. I’d at least add one layer of abstraction

  • @ricardomilos857
    @ricardomilos857 9 місяців тому

    Good example, thanks

  • @StephenHodgkiss
    @StephenHodgkiss Рік тому

    Hi Cody, do you have any ideas how to set the expires' value on the Javscript Fetch calls ?

    • @StephenHodgkiss
      @StephenHodgkiss Рік тому

      It's ok, I figured it out but looks like an extra call is needed as below that sets it to 60 secs:
      const response = await fetch(cacheEndpoint + "/expire/" + cacheType + '/60', {
      headers: {
      Authorization: "Bearer " + cacheBearer,
      },
      });

  • @shadowplay1211
    @shadowplay1211 Рік тому

    Is making a local cache manager based on local object or map will be a good idea? Or using redis will be better approach for the best performance?

    • @WebDevCody
      @WebDevCody  Рік тому +1

      that will work, but it will not work well when doing serverless since every lambda would has it's own cache. If you have a single VM that hosts your application, then yeah that might work, but redis has a lot of built in features that will make everything much easier as you grow

    • @shadowplay1211
      @shadowplay1211 Рік тому

      @@WebDevCody thanks!

    • @supersteez5316
      @supersteez5316 Рік тому

      @@shadowplay1211 In-App memory caches can get weird too. Usually when you query from a redis cache, and you make a change to the object returned, it doesn't affect the store, but in-app memory stores, e.g. an object, depending on the implementation can actually update the object in the store. Just a heads up.

  • @27sosite73
    @27sosite73 11 місяців тому

    thank you, mate!

  • @divyanshurawat2422
    @divyanshurawat2422 Рік тому

    Will this work this much faster in production also ?

    • @WebDevCody
      @WebDevCody  Рік тому

      yeah usually caching is something you'd add to a production system to try and improve load time of data that doesn't change often

  • @parkerrex
    @parkerrex 7 місяців тому

    This is a great video

  • @animegeek-011
    @animegeek-011 Рік тому

    Thanks React Query.

  • @TheIpicon
    @TheIpicon Рік тому

    honestly this is seems a bit of an overkill, if you use Redis just to cache for 10 seconds, you have this already built in in the Next framework, those are called `Segment Config Options`.
    Which you can cache your api request, without any 3rd party providers and without spending more money on them :)(P.S and it will be faster)

    • @TheIpicon
      @TheIpicon Рік тому

      It's not like I'm against Redis, I just think the example wasn't good enough can the edge case you presented have already built it solutions.
      I use Redis to cache stuff that regular API router caching can't do. Like user specific data or secret stuff

    • @WebDevCody
      @WebDevCody  Рік тому +3

      using redis gives you more control I'd say. For example, let's say you cache these comments for 5 minutes for users, BUT you want to invalidate the cache when a new user posts a comment. Correct me if I'm wrong, but if you just let next / vercel cache your api request, you have to wait the full 5 minutes and can not invalidate.

    • @TheIpicon
      @TheIpicon Рік тому

      @@WebDevCody I think you’re right, great point!🙏

  • @abdulrahmanalsabagh3334
    @abdulrahmanalsabagh3334 Рік тому

    Very nice

  • @parlor3115
    @parlor3115 Рік тому

    Or you could cache the data on disk like a pleb and force everyone working for you to agree even though you just said that the table is going to have 100 rows at most and it's an app used by like 200 people a day max.

    • @WebDevCody
      @WebDevCody  Рік тому +1

      That works for a service deployed to a vm and not on edge or serverless

    • @parlor3115
      @parlor3115 Рік тому

      @@WebDevCody Yeah, that too

  • @jeremey__
    @jeremey__ Рік тому

    I just use redis as my primary db.

  • @OmgImAlexis
    @OmgImAlexis Рік тому +1

    This seems less like a reason to use a cache and more of a reason to find out why your query is taking so damn long.

    • @WebDevCody
      @WebDevCody  Рік тому +6

      Yes, this was a simple example, but at some point you can't improve the query anymore. I've seen big queries with many joins take seconds before and you're left with little options for optimizing the query.

  • @bram1712
    @bram1712 Рік тому

    Liked the video still one thing trigged me and that was the else when it was not needed since your if always returns the else would not be needed

    • @WebDevCody
      @WebDevCody  Рік тому +1

      it'll be ok, an else statement isn't that bad

  • @larryd9577
    @larryd9577 Рік тому +7

    Caching is not the answer to poor database schema.

  • @SeibertSwirl
    @SeibertSwirl Рік тому

    Good job babe!!!!

  • @indrajeetgiri8099
    @indrajeetgiri8099 Рік тому

    I Don't Understand Why You Wrote false && cache Inside An If Statement You Can Directly Write if(cache) Instead If There Is An Cache Result

    • @WebDevCody
      @WebDevCody  Рік тому +1

      Did you watch the video?

    • @xenmods
      @xenmods 8 місяців тому

      POV: me when i think im too smart

  • @thelaitas
    @thelaitas Рік тому

    [0]