๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Redis

[Redis] ์บ์‹ฑ ์ „๋žต-Cache Aside, Write Around / ์บ์‹ฑ ๋œป / TTL ๋œป

by ์šฐ์ฃผ๋ฌผ๊ณ ๊ธฐ 2025. 11. 25.
๋ฐ˜์‘ํ˜•

์บ์‹œ๋ผ๋Š”๊ฑด... ์ „๊ณต ์ˆ˜์—… ๋“ค์œผ๋ฉด์„œ ์ˆ˜๋„์—†์ด ๋ฐฐ์šด๊ฑฐ์ง€๋งŒ..

์ƒˆ์‚ผ ๊ฐ„๋žตํžˆ ๋‚ด ์–ธ์–ด๋กœ ์ •๋ฆฌํ•ด๋ณธ์ ์€ ์—†๋Š” ๋“ฏ ํ•ด์„œ ์ •๋ฆฌํ•˜๋Š” ์ค‘

 

 

๐Ÿ“Cache ๋ž€?

RAM์— ์ €์žฅ๋˜๋Š” ์ž„์‹œ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ.

 

์šฐ๋ฆฌ๊ฐ€ ํ”ํžˆ ์•„๋Š” DB๋Š” ๋””์Šคํฌ์— ์ €์žฅ๋จ.

๋”ฐ๋ผ์„œ ์ฝ์–ด์˜ค๊ธฐ, ์“ฐ๊ธฐ์— ์‹œ๊ฐ„์ด ๊ฑธ๋ฆผ. 

 

๋ฐ˜๋ฉด์— RAM์— ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜๊ฒŒ ๋˜๋ฉด, ๋นจ๋ฆฌ ์™“๋‹ค๊ฐ“๋‹ค๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ธฐ๋•Œ๋ฌธ์— ์กฐํšŒ ์„ฑ๋Šฅ์ด ๋งค์šฐ ๋นจ๋ผ์ง.

ํ•˜์ง€๋งŒ RAM๊ฐ€๊ฒฉ์ด ๋น„์‹ผ๋ฐ์—” ๋‹ค ์ด์œ ๊ฐ€ ์ž‡์ง€์š”..

 

 

๐Ÿ“์บ์‹ฑ ์ „๋žต 2๊ฐ€์ง€

 

1. Cache Aside ์ „๋žต

์–ด๋–ป๊ฒŒ "์กฐํšŒ"ํ• ์ง€์— ๊ด€ํ•œ ์ „๋žต์ด๋‹ค.

์šฐ์„ , ๋‚ด๊ฐ€ ํŠน์ • ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๊ณ  ์‹ถ์„๋•Œ, ์ผ๋‹จ ์บ์‹œ๋กœ ๊ฐ€.

 

๊ทธ๋ฆฌ๊ณ  ์บ์‹œ์— ๋‚ด๊ฐ€ ์ฐพ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€

์žˆ์œผ๋ฉด(=Cache Hit) ๊ฑ ๊ทธ๋Œ€๋กœ ๊ฐ€์ ธ์˜ค๊ณ 

์—†์œผ๋ฉด(=Cache Miss) ๊ทธ์ œ์„œ์•ผ DB๋กœ ๊ฐ€์„œ ์ฐพ์Œ.

 

๊ทธ๋ฆฌ๊ณ  DB์— ์žˆ์œผ๋ฉด, ๊ทธ๊ฑธ ๊ฐ–๊ณ ์™€์„œ ๋‹ค์‹œ Cache์—๋„ ์ €์žฅ.

 

2. Write Around ์ „๋žต

์–ด๋–ป๊ฒŒ "์“ธ์ง€"์— ๊ด€ํ•œ ์ „๋žต์ด๋‹ค.

๋ฐ์ดํ„ฐ๋ฅผ ์ƒˆ๋กœ ์“ฐ๊ฑฐ๋‚˜, ์—…๋ฐ์ดํŠธํ• ์ผ์ด ์žˆ์„ ๋•Œ ๋ฌด์กฐ๊ฑด DB์—๋‹ค๊ฐ€๋งŒ ํ•˜๋Š”๊ฑฐ์ž„.

๋‚ด๊ฐ€ ์ƒˆ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค๊ณ  ํ•ด์„œ, ์ž์ฃผ ์“ธ๊ฑฐ๊ฐ™์œผ๋‹ˆ๊นŒ cache์— ์จ์•ผ์ง€~ ์ด๋Ÿฐ๊ฑฐ ์•ˆ๋œ๋‹ค๋Š”๊ฑฐ์ž„.

 

์“ฐ๋Š”๊ฑด ๋ฌด์กฐ๊ฑด DB์—!

+์กฐํšŒํ• ๋•Œ๋Š” cache aside ์ „๋žต์จ์„œ ์กฐํšŒํ•˜๋Š”๊ฑฐ์ž„.

 

โžก๏ธ ๋”ฐ๋ผ์„œ Cache Aside์ „๋žต, Write Around ์ „๋žต์€ ๋‘˜์ด ๊ฐ™์ด ์“ฐ์ž„.

 

 

๊ทผ๋ฐ ๋‹น์—ฐํžˆ ๋‹จ์  ์กด์žฌํ•จ.

 

โœ”๏ธ๋‹จ์ ?

๋‹จ์ 1. DB๋ฐ์ดํ„ฐ์™€ Cache๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Œ.

์ตœ์ดˆ๋กœ ๋ฐ์ดํ„ฐ ์กฐํšŒํ–ˆ๋Š”๋ฐ ์บ์‹œ์— ์—†์Œ -> Cache Miss ๋ฐœ์ƒ

-> DB๊ฐ€์„œ ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ด

-> ์บ์‹œ ์„œ๋ฒ„์— ์“ฐ๊ธฐ.(ver1)

~~์‹œ๊ฐ„์ด ํ๋ฅด๊ณ  ๊ทธ ๋ฐ์ดํ„ฐ ์ˆ˜์ •ํ•˜๊ฒŒ ๋จ(ver2)~~

๋‹น์—ฐํžˆ DB์—๋งŒ ๋ฐ˜์˜๋จ

-> ๋‹ค์‹œ ๊ทธ ๋ฐ์ดํ„ฐ ์กฐํšŒํ•  ์ผ์ด ์ƒ๊น€

-> ์บ์‹œ ๊ฐ€์„œ ์กฐํšŒ, ์žˆ์Œ! (Cache Hit) ๊ทผ๋ฐ ver1.

-> ๊ทธ๊ฑฐ ๊ทธ๋Œ€๋กœ ๊ฐ€์ ธ์˜ค๋Š”๊ฑฐ.

 

์ด๋ ‡๊ฒŒ ๋˜๋ฉด DB์—๋Š” ver2๊ฐ€, ์บ์‹œ์—๋Š” ver1์ด ์ €์žฅ๋˜๊ฒŒ ๋จ.

 

๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ ์œ ์ง€๊ฐ€ ์•ˆ๋œ๋‹ค๋Š” ๋‹จ์ .

 

๋‹จ์ 2. ์บ์‹œ ์„œ๋ฒ„์— ์šฉ๋Ÿ‰ ์ œํ•œ์ด ์žˆ์Œ.

redis๊ฐ™์€ ์บ์‹œ๋Š” RAM์— ์“ฐ์ด๋Š” ์ž„์‹œ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ์ž„.

RAM์ด ๋น ๋ฅธ๋งŒํผ.. ๊ฐ€๊ฒฉ๋„ ๋น„์‹ธ๊ณ  ์šฉ๋Ÿ‰๋„ ์ ์Œ.

๋”ฐ๋ผ์„œ ๋‹น์—ฐํžˆ ์บ์‹œ ์„œ๋ฒ„๋ฅผ ๋ฌดํ•œ๋Œ€๋กœ ๋†“๊ณ  ์“ธ ์ˆ˜ ์—†์Œ.

 

 

โžก๏ธ ์ด ๋‘๊ฐ€์ง€๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ TTL์ด ์žˆ์Œ!

์ด TTL์•„๋‹ˆ๊ณ ์š”

 

TTL์€ ๋ฐ์ดํ„ฐ์˜ ๋งŒ๋ฃŒ๊ธฐ๊ฐ„์„ ์„ค์ •ํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค.

 

ttl์„ ์„ค์ •ํ•จ์œผ๋กœ์จ ๋ฐ์ดํ„ฐ๋Š” ํŠน์ • ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ์บ์‹œ์—์„œ ์ง€์›Œ์ง.

๊ทธ๋Ÿฌ๊ณ  ์ž์ฃผ ์กฐํšŒ๋˜๋Š”๊ฑฐ๋ฉด ๊ณ„์† ์บ์‹œ ์„œ๋ฒ„์— ์žˆ๊ฒŒ ๋˜๋Š”๊ฑฐ๊ณ ..

์ž์ฃผ ์กฐํšŒ ์•ˆ๋˜๋ฉด ์ž์—ฐํžˆ ์บ์‹œ ์„œ๋ฒ„์—์„œ ์‚ฌ๋ผ์ง€๊ฒŒ ๋˜๋Š”๊ฑฐ๋‹ค. (์ƒˆ๋กญ๊ฒŒ ์บ์‹œ์— ์•ˆ์“ฐ์—ฌ์ง€๋Š”๊ฑฐ๋‹ˆ๊นŒ)

์ด๋ ‡๊ฒŒ ๋˜๋ฉด, ๋‹จ์ 1๊ณผ ๋‹จ์ 2๊ฐ€ ๋ชจ๋‘ ์ปค๋ฒ„ ๊ฐ€๋Šฅํ•จ.

 

๋งŒ๋ฃŒ๊ธฐ๊ฐ„์ด ๋‹ค ์ง€๋‚˜๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์ง€์›Œ์ง€๊ณ (ver1)

DB์—์„œ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฐ”๋€Œ๊ณ  ๋‚˜์„œ(ver2)

๋‹ค์‹œ ์กฐํšŒํ–ˆ์„ ๋•Œ ์บ์‹œ ์„œ๋ฒ„์— ver2๋กœ ์“ฐ์ด๊ฒŒ ๋˜๋Š”๊ฑฐ๋‹ˆ๊นŒ...

 

 


๐Ÿ“๋ฐ์ดํ„ฐ ์กฐํšŒ ์„ฑ๋Šฅ์„ ๋†’์ด๋Š” ๋ฐฉ๋ฒ•๋“ค

SQL๋ฌธ ํŠœ๋‹

์บ์‹œ ์„œ๋ฒ„ ๋‘๊ธฐ

..

 

๋“ฑ๋“ฑ ๋งŽ์€๋ฐ, ์ œ์ผ ๋จผ์ € ํ•ด์•ผํ• ๊ฑด

SQL๋ฌธ ํŠœ๋‹์ด๋‹ค.

 

๊ฐ€์„ฑ๋น„ ์žˆ๊ฒŒ ์ œ์ผ ๋จผ์ € ๊ณ ์ณ์•ผ ํ•˜๋Š” ๋ถ€๋ถ„์ด๋‹ค.

์บ์‹œ ์„œ๋ฒ„๋ฅผ ๋‘๋Š”๊ฒƒ๋ณด๋‹ค ๋จผ์ € ๋ด์•ผํ•˜๋Š” ๋ถ€๋ถ„.

 

์‚ฌ์‹ค ์บ์‹œ ์„œ๋ฒ„๋ฅผ ๋‘๋Š”๊ฑด ๊ทธ์— ๋”ฐ๋ผ ๋˜ ๋‹ค๋ฅธ ๋น„์šฉ์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค..

๋ฐ˜์‘ํ˜•