๋ฐ์ดํ„ฐ ์œ ํ˜•๊ณผ ํ•ด๋‹น ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ํŒจํ„ด์„ ์ž˜ ๊ณ ๋ คํ•ด์„œ ์„ ํƒํ•ด์•ผ ํ•œ๋‹ค.

์ฝ๊ธฐ ์ „๋žต

Look-Aside(Lazy Loading)

๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋Š” ์ž‘์—…์ด ๋งŽ์„ ๋•Œ ์‚ฌ์šฉ (๊ฐ€์žฅ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•)

Cache Hit

  1. ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•œ๋‹ค.
  2. ๋จผ์ € cache ์„œ๋ฒ„(redis)๋ฅผ ํ™•์ธํ•œ๋‹ค.
  3. cache์— ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์œผ๋ฉด DB๋ฅผ ์กฐํšŒํ•˜์ง€ ์•Š๊ณ  cache์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค. (Cache Hit)

Cache Miss

 

  1. ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•œ๋‹ค.
  2. ๋จผ์ € cache ์„œ๋ฒ„(redis)๋ฅผ ํ™•์ธํ•œ๋‹ค.
  3. 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์„ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

 

+ Recent posts