Caching Strategy
[์ฝ๊ธฐ ์ ๋ต]
Look Aside(== Cache Aside)ํจํด: ์บ์๊ฐ ์์ ๋ DB์์ ์กฐํํจ.
์บ์๊ฐ ์๋์ง ๋จผ์ ์ฒดํฌํ๊ณ , ์๋ ๊ฒฝ์ฐ(miss)์๋ง DB์ ์ ๊ทผํจ
DB๊ฐ (์ ๋ต) ์ ๋๋ก ๋ ๋ฐ์ดํฐ, ์บ์๋ ๋ณด์กฐ์๋จ, ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋จ
โ Best for: Systems with a high read-to-write ratio, like e-commerce sites.
code
์คํ๋ง์ ๊ธฐ๋ณธ์ ์ผ๋ก Look-Aside ํจํด์ ์ฌ์ฉํจ.
Read Through:
Cache Miss โโ Cache System(ex: Redis) โโ DB
์บ์์ ๋ฐ์ดํฐ ์์ผ๋ฉด ์บ์๊ฐ DB ์กฐํ, ๊ฒฐ๊ณผ๋ฅผ ์บ์์ ์ ์ฅ ๋ฐ ํด๋ผ์ด์ธํธ์ ๋ฐํ
์ฆ, ๋ฐ์ดํฐ ์กฐํ ์ฑ ์์ ์บ์ ๊ณ์ธต์ ์์ํ๋ ๋ฐฉ์
์ ํ๋ฆฌ์ผ์ด์ ์ ์บ์๋ง ๋ฐ๋ผ๋ณด๋ฉฐ, cache miss๋ DB ์ ๊ทผ์ ์ ๊ฒฝ์ฐ์ง ์์.
โ Read-heavy apps like CDNs, social media feeds, and user profiles.
[์ฐ๊ธฐ ์ ๋ต]
Write Through(๋๊ธฐ): ์บ์์ DB ๋ชจ๋์ ์ ์ฅํจ.
๋ฐ์ดํฐ ์ฐ๊ธฐ ์ ์บ์์ DB ๋ชจ๋ ๋์์ ๊ธฐ๋ก
ํญ์ ์บ์์ DB๊ฐ ๋๊ธฐํ๋ ์ํ ์ ์ง
(์์) ์ฐ๊ธฐ ์์ฒญ โ ์บ์ + DB ์ ์ฅ
์ฅ์ : ์บ์ miss ๊ฑฑ์ ์ด ์๊ณ (์ธ์ ๋ ์ต์ ๋ฐ์ดํฐ ์กด์ฌ) ์ธ์ ๋ ์ต์ ๋ฐ์ดํฐ ์ผ๊ด์ฑ ์ ์ง์ ์ฉ์ดํจ
๋จ์ : ์ฐ๊ธฐ ์ฑ๋ฅ์ด DB ์ฑ๋ฅ์ ์ข ์๋จ(DB๊ฐ ๋๋ ค์ง๋ฉด ์ ์ฒด ์ง์ฐ)
โ Best for: Consistency-critical systems, such as financial apps.
Write Back(Write Behind)(๋น๋๊ธฐ): ๋ฐ์ดํฐ๋ฅผ ์บ์์ ๋จผ์ ์ ์ฅ, ์ดํ DB์ ๋น๋๊ธฐ๋ก ์. ์ฐ๊ธฐ ๋ ์ดํด์(๋๊ธฐ์๊ฐ) ์ต์ํ.
์ฐ์ ์บ์ ์ ์ฅ, ๋์ค์ ๋น๋๊ธฐ์ ์ผ๋ก DB์ ์ ์ฅ
์ฐ๊ธฐ ์๋๊ฐ ๋งค์ฐ ๋น ๋ฆ
(์์)
์ฐ๊ธฐ ์์ฒญ โ ์บ์์๋ง ์ ์ฅ
์ผ์ ์๊ฐ ํ(๋ฐฐ์น ํน์ ํธ๋ฆฌ๊ฑฐ) โ DB์ ์ ์ฅ
์ฅ์ : ์ฐ๊ธฐ ์ฒ๋ฆฌ ์๋ ๋น ๋ฆ(์บ์์๋ง ์ ์ฅ), ํธ๋ํฝ ๊ธ์ฆ์ DB ๋ถํ ์ค์ด๊ธฐ ๊ฐ๋ฅ
๋จ์ : ์บ์ ์์ค ์ ๋ฐ์ดํฐ ์ ์ค ๊ฐ๋ฅ์ฑ ์์, ๊ตฌํ ๋ณต์ก๋๊ฐ ๋์(์ง์ฐ ์ ์ฅ, ์คํจ ์ฌ์๋ ๋ฑ ๊ณ ๋ ค ํ์ํจ)
Cache invalidation(์ญ์ )
์บ์์ ์๋ ๊ฐ์ ์ญ์ ํ๊ฑฐ๋ ๋ฌดํจํํ๋ ๋์
๋ฐ์ดํฐ์ ์ ํฉ์ฑ์ ์ ์งํ๊ธฐ ์ํด ์บ์๋ฅผ ์ง์
Write Around: ์บ์๋ฅผ ๊ฑฐ์น์ง ์๊ณ DB์ ๋ฐ๋ก ์ ์ฅ. ์ฝ์ ๋ ์บ์๋ฅผ ์ ๋ฐ์ดํธํจ
DB์๋ง ์ฐ์ ์ ์ฅ์ ํ๊ณ ์บ์ ์ ์ฅ์ ๊ฑด๋๋. ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ ์์ฒญ์ด ์ค๋ฉด ๊ทธ๋ ๊ฐ์ ธ์จ ๋ฐ์ดํฐ๋ฅผ ์บ์์ ์ ์ฅํ๋ ๋ฐฉ์.
์ดํ ์กฐํ์์ ์บ์์ ์ ์ฌ๋จ(Look Aside์ ๋น์ทํจ)
(์์)
์ฐ๊ธฐ ์์ฒญ โ DB ์ ์ฅ
์ดํ ์ฝ๊ธฐ โ ์บ์ miss โ DB ์กฐํ โ ์บ์ ์ ์ฅ
์ฅ์ : ๋ถํ์ํ ์บ์ ์ฐ๊ธฐ ์ค์ฌ์ ํจ์จ ๋์์ง
๋จ์ : ์ฒซ ์กฐํ ์ ์บ์ miss ๋ฐ์ ๊ฐ๋ฅ์ฑ์ด ๋์
โ Write-heavy systems where data isnโt immediately needed, like logging systems
โ Best for: High-write throughput systems, such as social media feeds.
Last updated