๋ฐ์ดํฐ ์ ํ๊ณผ ํด๋น ๋ฐ์ดํฐ์ ๋ํ ์ก์ธ์ค ํจํด์ ์ ๊ณ ๋ คํด์ ์ ํํด์ผ ํ๋ค.
์ฝ๊ธฐ ์ ๋ต
Look-Aside(Lazy Loading)
๋ฐ์ดํฐ๋ฅผ ์ฝ๋ ์์ ์ด ๋ง์ ๋ ์ฌ์ฉ (๊ฐ์ฅ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ)
Cache Hit
- ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ค.
- ๋จผ์ cache ์๋ฒ(redis)๋ฅผ ํ์ธํ๋ค.
- cache์ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด DB๋ฅผ ์กฐํํ์ง ์๊ณ cache์ ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ก ๋ฐํํ๋ค. (Cache Hit)
Cache Miss
- ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ค.
- ๋จผ์ cache ์๋ฒ(redis)๋ฅผ ํ์ธํ๋ค.
- cache ์๋ฒ์ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด DB๋ฅผ ์กฐํํ์ฌ cache ์๋ฒ์ ์ ์ฅํ๊ณ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํ๋ค. (Cache Miss)
Lazy Loading
cache๋ ์ฐพ๋ ๋ฐ์ดํฐ๊ฐ ์์ ๋์๋ง ์ ๋ ฅ๋๊ธฐ ๋๋ฌธ์ lazy loading์ด๋ผ๊ณ ๋ ๋ถ๋ฆ
์ด ๊ตฌ์กฐ๋ redis๊ฐ ๋ค์ด๋๋๋ผ๋ ๋ฐ๋ก ์ฅ์ ๋ก ์ด์ด์ง์ง ์๊ณ DB์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์ฌ ์ ์์
Cache Warming
๋์ cache์ ๋ถ์ด์๋ ์ปค๋ฅ์ ์ด ๋ง์ด ์์๋ค๋ฉด ๊ทธ ์ปค๋ฅ์ ์ด ๋ค DB์ ๋ถ๊ฒ ๋ผ์ DB์ ๊ฐ์๊ธฐ ๋ง์ ๋ถํ๊ฐ ๋ชฐ๋ฆด ์ ์์
์ด๋ฐ ๊ฒฝ์ฐ cache miss๊ฐ ๋ง์ด ๋ฐ์ํด์ ์ฑ๋ฅ์ ์ ํ๊ฐ ์ฌ ์ ์์
→ ๋ฏธ๋ฆฌ DB์์ cache๋ก ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ด๋ฃ์ด ์ฃผ๋ ์์
→ Cache Warming๐ฅ
์ฐ๊ธฐ ์ ๋ต
Write-Around
์ผ๋จ ๋ชจ๋ ๋ฐ์ดํฐ๋ DB์ ์ ์ฅ๋๊ณ cache miss๊ฐ ๋ฐ์ํ์ ๋๋ง cache(redis)์์ ๋ฐ์ดํฐ๋ฅผ ๋์ด์ค๋ ๋ฐฉ๋ฒ
์ด ๊ฒฝ์ฐ cache ๋ฐ์ดํฐ์ DB ๋ฐ์ดํฐ๊ฐ ๋ค๋ฅผ ์ ์๋ค๋ ๋จ์ ์ด ์๋ค.
Write-Through
DB์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๋ cache์๋ ํจ๊ป ์ ์ฅํ๋ ๋ฐฉ๋ฒ
cache๋ ํญ์ ์ต์ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋ค๋ ์ฅ์ ์ด ์์ง๋ง
์ ์ฅํ ๋๋ง๋ค ๋ ๋จ๊ณ ์คํ ์ ๊ฑฐ์ณ์ผ ํ๊ธฐ ๋๋ฌธ์ ์๋์ ์ผ๋ก ๋๋ฆฌ๋ค.
๋ฌด์กฐ๊ฑด cache์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ๋๋ฌธ์ ์ผ์ข ์ ๋ฆฌ์์ค ๋ญ๋น๋ฅผ ๊ฐ์ง๊ณ ์ฌ ์ ์์ด
expire time์ ์ค์ ํ๋ ๊ฒ์ด ์ข๋ค.