Redis-välimuisti ja viestinvälitys (Pub/Sub, Streams) · Oppitunti

Välimuistin perusmallien toteuttaminen

Oppikaa toteuttamaan Cache-Aside- ja Write-Through-mallit Redisillä sovellusten yleisille tiedoille.

Oppitunti 2/411 vaihetta

Välimuistin perusmallien toteuttaminen on ilmainen Redis-välimuisti ja viestinvälitys (Pub/Sub, Streams)-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Redis-välimuisti ja viestinvälitys (Pub/Sub, Streams)-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Redis-välimuisti ja viestinvälitys (Pub/Sub, Streams)-kurssilla on yhteensä 4 oppituntia.

Perusvälimuistimallien esittely

Tervetuloa! Tällä oppitunnilla tutustumme kahteen keskeiseen välimuistimalliin: Cache-Aside- ja Write-Through-malleihin. Näiden mallien avulla Redis voidaan yhdistää sovelluksiin tietojen tehokasta tallentamista ja hakemista varten.

Niiden ymmärtäminen on tärkeää responsiivisten ja skaalautuvien järjestelmien rakentamisessa.

Mikä on Cache-Aside?

Cache-Aside on yksi yleisimmistä tavoista käyttää välimuistia. Tässä mallissa sovellus vastaa sekä välimuistin että ensisijaisen tietovaraston, kuten tietokannan, hallinnasta.

  • Tietoja luettaessa sovellus tarkistaa ensin välimuistin.
  • Jos tiedot löytyvät (”cache hit”), se palauttaa välimuistissa olevat tiedot.
  • Jos tietoja ei löydy (”cache miss”), sovellus hakee ne tietokannasta, tallentaa ne välimuistiin ja palauttaa ne sitten.

Cache-Aside: lukupolku

Kuvitelkaa, että sovellus tarvitsee käyttäjätietoja. Näin Cache-Aside toimii:

  1. Sovellus pyytää tietoja: se tarkistaa Redisistä avaimen user:123.
  2. Cache Miss: Redis vastaa, ettei tietoja löydy.
  3. Sovellus kysyy tietokannasta: se hakee avaimen user:123 tietokannasta.
  4. Sovellus päivittää välimuistin: se tallentaa avaimen user:123 Redisiin.
  5. Sovellus palauttaa tiedot: se toimittaa tiedot käyttäjälle.
  6. Seuraavat pyynnöt: Redisissä on nyt user:123, joten tuloksena on nopea ”cache hit”!

Cache-Aside: CLI-esimerkki

Simuloidaan Cache-Aside-lukupolkua Redis CLI:n avulla. Ensin yritämme hakea avaimen, jota välimuistissa ei ole (miss), haemme sen sitten käsitteellisestä tietokannasta ja tallennamme sen. Lopuksi haemme sen uudelleen (hit).

DEL product:101
GET product:101

# Simulate fetching from DB: "Laptop X"
SET product:101 "Laptop X" EX 3600

GET product:101

Cache-Aside: hyödyt ja haitat

Hyödyt:

  • Yksinkertaisuus: Helppo toteuttaa.
  • Lukupainotteiset työkuormat: Erinomainen datalle, jota luetaan usein mutta muutetaan harvoin.
  • Datan ajantasaisuus: Uusi data lisätään välimuistiin vasta pyydettäessä, mikä vähentää välimuistin turhaa täyttymistä.

Haitat:

  • Alkuperäinen viive: Ensimmäinen luku mille tahansa datalle aiheuttaa aina välimuistihudin, joten se on hitaampi.
  • Vanhentunut data: Jos tietokantaa päivitetään suoraan, välimuistissa saattaa olla vanhaa dataa, kunnes se vanhenee tai mitätöidään erikseen.

Mikä on Write-Through?

Write-Through-malli varmistaa, että data kirjoitetaan samanaikaisesti sekä välimuistiin että ensisijaiseen tietovarastoon eli tietokantaan. Sovellus kirjoittaa välimuistiin, ja välimuisti vastaa datan kirjoittamisesta tietokantaan.

  • Kun dataa kirjoitetaan, se menee ensin välimuistiin.
  • Välimuisti kirjoittaa datan heti tietokantaan.
  • Kirjoitus katsotaan valmiiksi vasta, kun molemmat toiminnot onnistuvat.

Write-Through: kirjoitusprosessi

Oletetaan, että tuotteen hintaa päivitetään. Näin Write-Through toimii:

  1. Sovellus kirjoittaa datan: Lähettää tuotteen uuden hinnan avaimelle product:202 Redis-palveluun.
  2. Välimuisti kirjoittaa tietokantaan: Redis kirjoittaa saman päivityksen heti tietokantaan.
  3. Välimuisti kuittaa: Redis vahvistaa kirjoituksen sovellukselle vasta, kun tietokantaan kirjoittaminen on valmis.
  4. Sovellus jatkaa: Sovellus jatkaa toimintaansa tietäen, että välimuisti ja tietokanta ovat yhdenmukaiset.

Write-Through: CLI-esimerkki

Write-Through-mallissa sovellus suorittaa yleensä yhden kirjoitustoiminnon välimuistiin, ja välimuisti (tai mallin toteuttava asiakaskirjasto) huolehtii datan tallentamisesta tietokantaan. Tässä simuloimme arvon asettamista, joka päivittäisi käsitteellisesti myös tietokannan.

SET user:456 '{"name": "Alice", "email": "alice@example.com"}'

# Conceptually, this SET command
# would trigger an update to your
# primary database as well.

GET user:456

Write-Through: hyödyt ja haitat

Hyödyt:

  • Datan yhdenmukaisuus: Välimuisti ja tietokanta ovat aina synkronissa.
  • Luotettavuus: Data tallennetaan heti pysyvästi.
  • Yksinkertaisemmat luvut: Kaikki luvut ovat välimuistiosumia (olettaen, että data kirjoitetaan aina välimuistin kautta).

Haitat:

  • Kirjoitusviive: Kirjoitukset ovat hitaampia, koska data täytyy kirjoittaa kahdesti (välimuistiin ja tietokantaan).
  • Välimuistin turha täyttyminen: Välimuistiin kirjoitettua dataa ei ehkä koskaan lueta, jolloin välimuistitilaa kuluu turhaan.
  • Kasvanut kuormitus: Jokainen kirjoitustoiminto aiheuttaa kirjoituksen tietokantaan, mikä saattaa kasvattaa tietokannan kuormaa.

Mallien vertailu: tietovisa

Suunnittelette ominaisuutta, jossa käyttäjäprofiileja luetaan usein mutta päivitetään harvemmin. Mikä välimuistimalli olisi yleensä sopivin lukusuorituskyvyn parantamiseen ja toteutuksen yksinkertaistamiseen?

Kertaus: välimuistimallien perusteet

Hienoa työtä! Olette oppineet kaksi keskeistä välimuististrategiaa:

  • Cache-Aside: Sovellus hallinnoi välimuistia. Luvussa välimuisti tarkistetaan ensin; välimuistihudin sattuessa data haetaan tietokannasta, tallennetaan välimuistiin ja palautetaan. Sopii parhaiten lukupainotteiselle datalle.
  • Write-Through: Kirjoitukset menevät välimuistiin, joka kirjoittaa ne heti tietokantaan. Tämä varmistaa välimuistin ja tietokannan vahvan yhdenmukaisuuden.

Nämä mallit muodostavat perustan kehittyneemmille välimuistitekniikoille, joita käsittelette tulevilla oppitunneilla!

Aloita maksutta

Opi Redis-välimuisti ja viestinvälitys (Pub/Sub, Streams) tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
12
Oppitunnit
48

Usein kysytyt kysymykset

Onko oppitunti ”Välimuistin perusmallien toteuttaminen” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Redis-välimuisti ja viestinvälitys (Pub/Sub, Streams)-oppimispolun 3 oppituntia, myös oppitunnin “Välimuistin perusmallien toteuttaminen”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Redis-välimuisti ja viestinvälitys (Pub/Sub, Streams)-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Välimuistin perusmallien toteuttaminen”?

Oppikaa toteuttamaan Cache-Aside- ja Write-Through-mallit Redisillä sovellusten yleisille tiedoille. Harjoittelet Redis-välimuisti ja viestinvälitys (Pub/Sub, Streams)-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Redis-välimuisti ja viestinvälitys (Pub/Sub, Streams)-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Redis-välimuisti ja viestinvälitys (Pub/Sub, Streams)-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”Välimuistin perusmallien toteuttaminen”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Redis-välimuisti ja viestinvälitys (Pub/Sub, Streams)-oppitunnilla?

Kyllä. Jokainen Redis-välimuisti ja viestinvälitys (Pub/Sub, Streams)-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Miksi välimuistia käytetään? Johdanto välimuistien käyttöön
  2. Välimuistin perusmallien toteuttaminen
  3. Välimuistin häätö ja vanhentuminen
  4. Välimuistin ruuhkautumisen ja thundering herd -ilmiön estäminen
← Takaisin: Redis-välimuisti ja viestinvälitys (Pub/Sub, Streams)