๐ธ์บ์๋ก์์ ๋ ๋์ค
์บ์๋ก์์ ๋ ๋์ค๋ ๋ค์๊ณผ ๊ฐ์ ์ด์ ์ ์ง๋๊ณ ์๋ค.
- ๊ฐํธํ ์ฌ์ฉ:
ํค-๊ฐ ํํ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๋ฐํํ๋ ๋ฐฉ์์ด ๊ฐ๋จํ๋ฉฐ, ๋ค์ํ ์๋ฃ ๊ตฌ์กฐ(list, hash ๋ฑ)๋ฅผ ๋ณํ ๊ณผ์ ์์ด ๋ฐ๋ก ์ ์ฅํ ์ ์๋ค. - ๋น ๋ฅธ ์๋:
๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ ๊ฒ์๊ณผ ๋ฐํ ์๋๊ฐ ๋งค์ฐ ๋น ๋ฅด๋ค.
ํ๊ท ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ ์๋๊ฐ 1ms ๋ฏธ๋ง์ผ๋ก ์ด๋น ์๋ฐฑ๋ง ๊ฑด์ ์์ ์ด ๊ฐ๋ฅํ๋ค. - ๊ณ ๊ฐ์ฉ์ฑ(HA):
ํด๋ฌ์คํฐ ๊ธฐ๋ฅ์ ํตํด ์ฅ์ ๋ฐ์ ์ ์๋์ผ๋ก ์ฅ์ ๋ฅผ ๊ฐ์งํ๊ณ ํ์ผ์ค๋ฒ๋ฅผ ์ํํ์ฌ ์ด์์์ ๊ฐ์ ์์ด ์ ์์ ์ผ๋ก ์ ์ง๋๋ค - ์ ์ฐํ ํ์ฅ์ฑ(๋ ๋์ค์ ํด๋ฌ์คํฐ):
๋ ๋์ค์ ํด๋ฌ์คํฐ๋ฅผ ํ์ฉํ๋ฉด ์บ์์ ์ค์ผ์ผ ์์์ด ์ฌ์ ์๋น์ค ๊ท๋ชจ์ ๋ฐ๋ผ ์บ์ ์์ฒด์ ๊ท๋ชจ๋ฅผ ์ฝ๊ฒ ํ์ฅํ ์ ์์ต๋๋ค.
๐จ๋ฐ๋ผ์ ๋ ๋์ค๋ ์บ์ ์ ์ฅ์ ์ฉ๋๋ก ์ด์์ ์ด๋ฉฐ ์๋ง์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ ๋์ค๋ฅผ ์บ์ ์ฉ๋๋ก ์ฌ์ฉํ๊ณ ์๋ค.
๐ธ์บ์ฑ ์ ๋ต
๋ ๋์ค๋ฅผ ์บ์๋ก ์ฌ์ฉํ ๋, ๋ ๋์ค๋ฅผ ์ด๋ป๊ฒ ๋ฐฐ์นํ ๊ฒ์ธ์ง์ ๋ฐ๋ผ ์๋น์ค์ ์ฑ๋ฅ์ ํฐ ์ํฅ์ ๋ผ์น ์ ์๋ค.
์บ์ฑ ์ ๋ต์ ์บ์ฑ๋๋ ๋ฐ์ดํฐ์ ์ ํ๊ณผ ๋ฐ์ดํฐ์ ๋ํ ์ก์ธ์ค ํจํด์ ๋ฐ๋ผ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ์๋น์ค์ ๋ง๋ ์ ์ ํ ์บ์ฑ ์ ๋ต์ ์ ํํ๋ ๊ฒ์ด ์ค์ํ๋ค.
1๏ธโฃ ์ฝ๊ธฐ ์ ๋ต (look aside)
look aside ์ ๋ต์ ๋ ๋์ค๋ฅผ ์บ์๋ก ์ฌ์ฉํ ๋ ๊ฐ์ฅ ์ผ๋ฐ์ ์ผ๋ก ๋ฐฐ์นํ๋ ๋ฐฉ๋ฒ์ด๋ค.
๐น1. ์บ์ ํํธ
์ ํ๋ฆฌ์ผ์ด์ ์ ์ฐพ๊ณ ์ ํ๋ ๋ฐ์ดํฐ๊ฐ ๋จผ์ ์บ์์ ์๋์ง ํ์ธํ๋ค.
์บ์์ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด ์บ์์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์จ๋ค => ์บ์ ํํธ
๐น2. ์บ์ ๋ฏธ์ค
์ฐพ๊ณ ์ ํ๋ ๋ฐ์ดํฐ๊ฐ ์์ ๋์๋ ์บ์ ๋ฏธ์ค๊ฐ ๋ฐ์ํ๋ค.
๋ ๋์ค๋ก๋ถํฐ ๋ฐ์ดํฐ๊ฐ ์๋ค๋ ์๋ต์ ๋ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ง์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํด ์ฐพ๊ณ ์ ํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์จ๋ค.
๊ทธ ๋ค ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด๋ฅผ ๋ค์ ์บ์์ ์ ์ฅํ๋ ๊ณผ์ ์ ๊ฑฐ์น๋ค.
๐จ Lazy Loading !!
์ฐพ๊ณ ์ ํ๋ ๋ฐ์ดํฐ๊ฐ ๋ ๋์ค์ ์์ ๋์๋ง ๋ ๋์ค์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ ๊ตฌ์กฐ๋ฅผ ๋งํ๋ค.
์บ์ ๋ฏธ์ค๊ฐ ๋ฐ์ํ๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํด์ผ ํ๋ฏ๋ก ์ฑ๋ฅ ์ ํ์ ์์ธ์ด ๋ ์ ์๋ค.
ํนํ, ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ฑฐ๋ ์ฒ์ ๋ ๋์ค๋ฅผ ๋์ ํ ๋ ์ฑ๋ฅ์ ์ํฅ์ ์ค ์ ์๋ค.
๐น3. ์บ์ ์๋ฐ
์บ์ ์๋ฐ์ ์ด๋ฌํ Lazy Loading์ ๋ฐฉ์งํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ด์,
์บ์ ๋ฏธ์ค๋ฅผ ์ต์ํํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ์ดํฐ ์ ๊ทผ ์๋๋ฅผ ํฅ์์ํค๋ ๋ฐฉ๋ฒ์ด๋ค.
๋ฐ๋ผ์ ์บ์ ์๋ฐ์ ์๋น์ค ์์ ์ ๋๋ ํน์ ์ด๋ฒคํธ ๋ฐ์ ์ ์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๋ฏธ๋ฆฌ ์บ์์ ๋ก๋ํ๋ค.
2๏ธโฃ ์ฐ๊ธฐ ์ ๋ต
์บ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋ผ ์๋ ๋ฐ์ดํฐ๋ฅผ ๋จ์ํ ๋ณต์ฌํด ์จ ๊ฐ์ด๋ค.
๋ฐ๋ผ์ ์๋ณธ ๋ฐ์ดํฐ์ ๋์ผํ ๊ฐ์ ๊ฐ๋๋ก ์ ์งํ๋ ๊ฒ์ด ํ์์ ์ด๋ค.
๋ง์ฝ ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋ ๋ ์๋ณธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ง ์ ๋ฐ์ดํธ๋ผ ์บ์์๋ ๋ณ๊ฒฝ๋ ๊ฐ์ด ๋ฐ์๋์ง ์๋๋ค๋ฉด ๋ฐ์ดํฐ ๊ฐ ๋ถ์ผ์น๊ฐ ์ผ์ด๋๋ฉฐ ์ด๋ฅผ ์บ์ ๋ถ์ผ์น๋ผ ํ๋ค.
์บ์๋ฅผ ์ด์ฉํ ์ฐ๊ธฐ ์ ๋ต์ ๋ํ์ ์ผ๋ก ์ธ ๊ฐ์ง๊ฐ ์๋ค.
๐น1. write through
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๋ฐ์ดํธํ ๋๋ง๋ค ๋งค๋ฒ ์บ์์๋ ๋ฐ์ดํฐ๋ฅผ ํจ๊ป ์ ๋ฐ์ดํธ์ํค๋ ๋ฐฉ์
- ์ฅ์ :
- ์บ์๋ ํญ์ ์ต์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง ์ ์๋ค.
- ๋จ์ :
- ๋ฐ์ดํฐ๋ ๋งค๋ฒ 2๊ฐ์ ์ ์ฅ์์ ์ ์ฅ๋ผ์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ ์ธ ๋๋ง๋ค ์๊ฐ์ด ๋ง์ด ์์๋๋ค.
์ฆ ๋ค์ ์ฌ์ฉ๋์ง ์์ ๋ฐ์ดํฐ๋ ๋ฌด์กฐ๊ฑด ์บ์์ ์ ์ฅ๋๊ธฐ ๋๋ฌธ์ ๋ฆฌ์์ค ๋ญ๋น๊ฐ ๋ฐ์ํ ์ ์๋ค.
(์ด ๋ฐฉ์์ ์ฌ์ฉํ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๋ ๋ง๋ฃ ์๊ฐ ์ฌ์ฉ ๊ถ์ฅ)
๐น2. cache invalidation
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฐ์ ์ ๋ฐ์ดํธํ ๋๋ง๋ค ์บ์์์ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ ๋ฐฉ์
- ์ฅ์ :
- ๋ฆฌ์์ค๋ฅผ ํจ์ฌ ์ ์ฝํ ์ ์๋ค. - write through ๋จ์ ๋ณด์
- ๋จ์ :
- ์บ์ ๋ฏธ์ค๊ฐ ์ฆ๊ฐํ ์ ์๋ค.
- ์ค์๊ฐ ์ฒ๋ฆฌ๊ฐ ์ด๋ ต๋ค.
์ ๋ฐ์ดํธ ๋น๋๊ฐ ๋ฎ๊ณ ์ฝ๊ธฐ ๋น๋๊ฐ ๋์ ์์คํ ์ ์ ํฉํ ๋ฐฉ์์ด๋ค.
๐น3. write behind(write back)
์ ํ๋ฆฌ์ผ์ด์ ์ด ๋จผ์ ์บ์์ ๋ฐ์ดํฐ๋ฅผ ์ฐ๊ณ , ๋์ค์ ๋น๋๊ธฐ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ๋ ๋ฐฉ์
- ์ฅ์ :
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฆ์ ์ฐ์ง ์๊ณ ์บ์์ ๋จผ์ ์ ์ฅํ๋ฏ๋ก ๋น ๋ฅธ ์๋ต ์๋๋ฅผ ์ ๊ณตํ๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก์ ์ฐ๊ธฐ ์์ ์ ๋ฌถ์ด์ ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ๋์คํฌ I/O๋ฅผ ์ค์ผ ์ ์๋ค.
- ๋จ์ :
- ์์คํ ์ฅ์ ์ ์บ์์๋ง ์ ์ฅ๋ ๋ฐ์ดํฐ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋๊ธฐํ๋์ง ์์ ์์ค๋ ์ ์๋ค.
- ์ผ๊ด์ฑ ๊ด๋ฆฌ๊ฐ ์ด๋ ต๋ค.
์ฆ, ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ๋ณด๋ค ์ฑ๋ฅ์ด ์ค์ํ ๊ฒฝ์ฐ, ์ฐ๊ธฐ ์์ ์ด ๋น๋ฒํ ๊ฒฝ์ฐ์ ์ ์ฉํ๋ค.
(ex ์ ํ๋ธ์ ๊ฐ์ ์คํธ๋ฆฌ๋ฐ ์ฌ์ดํธ์ ๋์์ ์ข์์ ์)
๐ธ์บ์ ๋ง๋ฃ ์๊ฐ
๊ธฐ๋ณธ์ ์ผ๋ก ์บ์๋ ๋ฐ์ดํฐ ์คํ ์ด๊ฐ ๊ฐ๊ณ ์๋ ๋ฐ์ดํฐ ์ค ์ฌ์ฉ์๊ฐ ์์ฃผ ์ฌ์ฉํ ๋งํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณ ์์ ์์๋ก ์ ์ฅํ๋ ์ ์ฅ์์ด๋ค. ์ฆ, ๋ฐ์ดํฐ ์คํ ์ด๋ณด๋ค ์ ์ ์์ ๋ณด๊ดํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ธ์ ์ด๋ผ๊ณ ๋ณผ ์ ์๋ค.
ํนํ ๋ ๋์ค๋ ๋ฉ๋ชจ๋ฆฌ์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ฏ๋ก ๊ณต๊ฐ์ ๋๋์ฑ ํ์ ์ ์ด๋ค.
๋ฐ๋ผ์ ์บ์๋ ๊ฐ๋ ์ฐจ์ง ์๊ฒ ์ผ์ ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์งํด์ผ ํ๋ฉฐ ๊ณ์ํด์ ์๋ก์ด ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๊ณ ๊ธฐ์กด ๋ฐ์ดํฐ๋ ์ญ์ ๋ ์ ์๋๋ก ๊ด๋ฆฌํด์ผํ๋ค.
๊ทธ๋ฌ๋ฏ๋ก, ์บ์๋ก ๋ ๋์ค๋ฅผ ์ฌ์ฉํ ๋์๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํจ๊ณผ ๋์์ ์ ์ ํ ์๊ฐ์ TTL๊ฐ์ ์ง์ ํ๋ ๊ฒ์ด ์ข๋ค.
1๏ธโฃ ๋ง๋ฃ์๊ฐ, TTL
๋ง๋ฃ์๊ฐ, TTL : ๋ฐ์ดํฐ๊ฐ ์ผ๋ง๋ ์ค๋ ์ ์ฅ๋ ๊ฒ์ธ์ง๋ฅผ ๋ํ๋ด๋ ์๊ฐ ์ค์
๋ ๋์ค๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์ ํน์ ํค์ ๋ํ ๋ง๋ฃ ์๊ฐ์ ์ค์ ํ ์ ์์ผ๋ฉฐ,
์ด๋ ๋ฐ์ดํฐ์ ์ ํจ ๊ธฐ๊ฐ ๋๋ ๋ง๋ฃ์๊ฐ์ ์ ์ํ๋ ๋ฐ ์ฌ์ฉ๋๋ค.
ํน์ง์ ๋ค์๊ณผ ๊ฐ๋ค.
- ๋จ์: ๋ณดํต ์ด(second) ๋จ์๋ก ์ค์ ๋๋ฉฐ, ๋ฐ๋ฆฌ์ด(millisecond) ๋จ์๋ก๋ ์ค์ ๊ฐ๋ฅ(PTTL, PEXPIRE ์ฌ์ฉ ์).
- ์๋ ์ญ์ : ์ค์ ๋ ์๊ฐ์ด ์ง๋๋ฉด ์๋์ผ๋ก ๋ฐ์ดํฐ๊ฐ ์ญ์ ๋์ด ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๋ค.
- ๋ฐ์ดํฐ ์๋ช ๊ด๋ฆฌ: ์บ์ ๋ฐ์ดํฐ ์ ์ง ๋ฐ ๊ด๋ฆฌ์ ๋์์ ์ค๋ค.
ํค์ ๋ง๋ฃ์๊ฐ์ ์ง์ ํ๋ ์์ ๋ฅผ ์ดํด๋ณด๊ณ ์ํ๋ค.
๐นEXPIRE
> SET a 100
"OK"
> EXPIRE a 60
(integer) 1
์ฌ์ฉ๋ฒ: EXPIRE <key> <seconds>
์์ ์์ ๋ a๋ผ๋ ํค์ 100์ ์ ์ฅํ ๋ค EXPIRE ์ปค๋งจ๋๋ฅผ ์ด์ฉํด ๋ง๋ฃ์๊ฐ์ 60์ด๋ก ์ค์ ํ๋ค.
(INCR ์ปค๋งจ๋๋ก ๋ฐ์ดํฐ๋ฅผ ์กฐ์ํ๊ฑฐ๋ RENAME์ ์ด์ฉํด ํค์ ์ด๋ฆ์ ๋ฐ๊พธ๋๋ผ๋ ์ค์ ๋ ๋ง๋ฃ ์๊ฐ์ ๋ณ๊ฒฝ๋์ง ์์)
๐นSET + EX
> SET a 100 EX 60
"OK"
์ฌ์ฉ๋ฒ: SET <key> EX <seconds>
SET ๋ช ๋ น์ด๋ก ๊ฐ์ ์ ์ฅํ ๋ ๋ง๋ฃ ์๊ฐ์ ํจ๊ป ์ค์ ํ ์ ์๋ค.
๐นTTL
// ๋ง๋ฃ์๊ฐ์ด ์ค์ ๋ ๊ฒฝ์ฐ
> TTL a
(integer) 58
// ๋ง๋ฃ์๊ฐ์ด ์ค์ ๋์ง ์์ ๊ฒฝ์ฐ
> TTL b
(integer) -1
// ํค๊ฐ ์กด์ฌํ์ง ์๋ ๊ฒฝ์ฐ
> TTL c
(integer) -2
์ฌ์ฉ๋ฒ: TTL <key>
TTL์ ๋ช ๋ น์ด๋ฅผ ํตํด ๋จ์ ๋ง๋ฃ์๊ฐ์ ํ์ธํ ์ ์๋ค.
์ด๋, ๋ฐํ๋๋ ๊ฐ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ๋ง๋ฃ ์๊ฐ์ด ์ค์ ๋ ๊ฒฝ์ฐ : ๋จ์ ์๊ฐ(์ด) ๋ฐํ
- ๋ง๋ฃ ์๊ฐ์ด ์ค์ ๋์ง ์์ ๊ฒฝ์ฐ : -1 ๋ฐํ
- ํค๊ฐ ์๋ ๊ฒฝ์ฐ : -2 ๋ฐํ
๐จ๊ธฐ์กด ํค์ ์๋ก์ด ๊ฐ์ ๋ฎ์ด ์ธ ๋?
> SET b 100
"OK"
> EXPIRE b 60
(integer) 1
> TTL b
(integer) 57
> SET b banana
"OK"
> TTL b
(integer) -1
INCR ์ปค๋งจ๋๋ก ๋ฐ์ดํฐ๋ฅผ ์กฐ์ํ๊ฑฐ๋ RENAME์ ์ด์ฉํด ํค์ ์ด๋ฆ์ ๋ฐ๊พธ๋๋ผ๋ ์ค์ ๋ ๋ง๋ฃ ์๊ฐ์ ๋ณ๊ฒฝ๋์ง ์๋๋ค.
ํ์ง๋ง, ๊ธฐ์กด ํค์ ์๋ก์ด ๊ฐ์ ์ ์ฅํด ํค๋ฅผ ๋ฎ์ด ์ธ ๋์๋ ์ด์ ์ ์ค์ ํ ๋ง๋ฃ์๊ฐ์ ์ ์ง๋์ง ์๊ณ ์ฌ๋ผ์ง๋ค..
2๏ธโฃ ๋ ๋์ค์์ ํค๋ฅผ ๋ง๋ฃํ๋ ๋ฐฉ์?
๋ ๋์ค์์ ํค๊ฐ ๋ง๋ฃ๋๋ค๊ณ ํด๋ ๋ฐ๋ก ๋ฉ๋ชจ๋ฆฌ์์ ์ญ์ ๋์ง ์๋๋ค.
ํค๋ passive ๋ฐฉ์๊ณผ active ๋ฐฉ์ ๋ ๊ฐ์ง ๋ฐฉ์์ผ๋ก ์ญ์ ๋๋ค.
๐นpassive ๋ฐฉ์
ํด๋ผ์ด์ธํธ๊ฐ ํค์ ์ ๊ทผํ๊ณ ์ ํ ๋ ํค๊ฐ ๋ง๋ฃ๋๋ค๋ฉด ๋ฉ๋ชจ๋ฆฌ์์ ์๋์ ์ผ๋ก ์ญ์ ํ๋ค.
- ํน์ง:
- ์ฌ์ฉ์ ์ ๊ทผ ์์ ์๋ง ์ญ์ ๊ฐ ์ด๋ฃจ์ด์ง๋ค.
- ์ฌ์ฉ์ ์ ๊ทผ์ด ์๋ ๋ง๋ฃ๋ ํค๋ ์ฌ์ ํ ๋ฉ๋ชจ๋ฆฌ์ ๋จ์ ์์ ์ ์๋ค.
- ์ฅ์ :
- ๋ถํ์ํ ๋ฆฌ์์ค ์ฌ์ฉ์ ์ค์ธ๋ค.
- ๋จ์ :
- ์ฌ์ฉ์ ์ ๊ทผ์ด ์ ์ ํค๋ ๋ฉ๋ชจ๋ฆฌ์ ๋ถํ์ํ๊ฒ ๋จ์ ์์ด ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น ๊ฐ๋ฅ์ฑ์ด ์๋ค.
๐นactive ๋ฐฉ์
TTL ๊ฐ์ด ์๋ ํค ์ค 20๊ฐ๋ฅผ ๋ฌด์์๋ก ์ ํํ์ฌ ๋ง๋ฃ๋ ํค๋ฅผ ์ญ์ ํ๋ค.
- ๋์ ๋ฐฉ์:
- 20๊ฐ์ ํค ์ค 25% ์ด์์ด ๋ง๋ฃ๋ ๊ฒฝ์ฐ, ์ถ๊ฐ๋ก 20๊ฐ๋ฅผ ์ ํํด ๋ฐ๋ณต ํ์ธ.
(์ด ๊ณผ์ ์ 1์ด์ 10๋ฒ ์ ๋ ์ํ๋จ)
- 20๊ฐ์ ํค ์ค 25% ์ด์์ด ๋ง๋ฃ๋ ๊ฒฝ์ฐ, ์ถ๊ฐ๋ก 20๊ฐ๋ฅผ ์ ํํด ๋ฐ๋ณต ํ์ธ.
- ์ฅ์ :
- ์ฃผ๊ธฐ์ ์ผ๋ก ๋ง๋ฃ๋ ํค๋ฅผ ์ ๋ฆฌํด ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๋ฅผ ๋ฐฉ์งํ๋ค.
- ๋จ์ :
- ๋๋ค ์ํ๋ง์ด๋ฏ๋ก ๋ชจ๋ ๋ง๋ฃ๋ ํค๊ฐ ์ฆ์ ์ญ์ ๋๋ ๊ฒ์ ์๋๋ค.
๐ธ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์ maxmemory-policy ์ค์
๋ ๋์ค์์ ํค์ ๋ง๋ฃ ์๊ฐ์ ์ค์ ํด ๋ฐ์ดํฐ๊ฐ ์๋์ผ๋ก ์ญ์ ๋๋๋ก ํจ์ผ๋ก์จ ๋ฐ์ดํฐ์ด ์๋ช ์ ๊ด๋ฆฌํ ์ ์๋ฐ.
ํ์ง๋ง ๋ ๋์ค์ ๋ฉ๋ชจ๋ฆฌ๋ ์ ํ์ ์ด๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ํค์ ๋ง๋ฃ ์๊ฐ์ ์ค์ ํ๋๋ผ๋ ๋๋ฌด ๋ง์ ํค๊ฐ ์ ์ฅ๋๋ฉด ๋ฉ๋ชจ๋ฆฌ๊ฐ ๊ฐ๋ ์ฐจ๋ ์ํฉ์ด ๋ฐ์ํ ์ ์๋ค.
๋ฉ๋ชจ๋ฆฌ์ ์ฉ๋์ ์ด๊ณผํ๋ ์์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ฉด ๋ ๋์ค๋ ๋ด๋ถ ์ ์ฑ ์ ์ฌ์ฉํด ์ด๋ค ํค๋ฅผ ์ญ์ ํ ์ง ๊ฒฐ์ ํ๋ค.
๋ ๋์ค์์๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ ๋๊ฐ์ ์ค์ ๊ฐ์ผ๋ก ์ด๋ฃจ์ด์ง๋ค.
- maxmemory: ์ต๋ ์ ์ฅ ์ฉ๋์ ์ค์
- maxmemory-policy: maxmemory ์ฉ๋์ ์ด๊ณผ ํ ๋์ ์ฒ๋ฆฌ ๋ฐฉ์์ ๊ฒฐ์
maxmemory-policy์ ๋ค์ํ ์ค์ ๊ฐ๊ณผ ๋์ ๋ฐฉ์์ ๋ํด ์์๋ณด์.
1๏ธโฃ Noeviction (๊ธฐ๋ณธ๊ฐ)
Noeviction:
๋ ๋์ค์ ๋ฐ์ดํฐ๊ฐ ๊ฐ๋ ์ฐจ๋๋ผ๋ ์์๋ก ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ์ง ์๊ณ ๋ ์ด์ ๋ ๋์ค์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ค๋ ์๋ฌ๋ฅผ ๋ฐํํ๋ ์ค์ ๊ฐ
๋ฉ๋ชจ๋ฆฌ ํ๋(maxmemory)์ ๋๋ฌํ๋ฉด ์๋ก์ด ์ฐ๊ธฐ ์์ฒญ์ ๊ฑฐ๋ถํ๋ค.
๋ฐ๋ผ์ ๊ธฐ์กด ๋ฐ์ดํฐ๋ ๊ทธ๋๋ก ์ ์ง๋๋ฉฐ, ์ญ์ ๋์ง ์๋๋ค.
๊ทธ๋ฌ๋ ์บ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ์ง ๋ชปํด ์๋ฌ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ๋ก์ง์ ๋ฐ๋ผ ์ฅ์ ์ํฉ์ผ๋ก ์ด์ด์ง ์ ์๋ค.
์ด๋ฐ ์ํฉ์์๋ ๊ด๋ฆฌ์๊ฐ ๋ ๋์ค์ ๋ฐ์ดํฐ๋ฅผ ์ง์ ์ง์์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ ๋์ค๋ฅผ ์บ์๋ก ์ฌ์ฉํ ๋ ๊ถ์ฅํ์ง ์๋ ์ค์ ๊ฐ์ด๋ค.
๋ฐ์ดํฐ ์ ์ค์ด ์น๋ช ์ ์ธ ์์คํ , ๋ด๋ถ์ ํ๋จ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ ๊ฒ์ด ์ํํ๋ค๊ณ ํ๋จ๋ ๋ ์ด ์ต์ ์ ์ฌ์ฉํ ์ ์๋ค.
2๏ธโฃ LRU eviction
LRU(Least-Recently-Used) eviction :
๋ ๋์ค์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๊ฐ๋ ์ฐผ์ ๋ ๊ฐ์ฅ ์ต๊ทผ์ ์ฌ์ฉ๋์ง ์์ ๋ฐ์ดํฐ๋ฅผ ์ฐ์ ์ ์ผ๋ก ์ญ์ ํ๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์ ๋ต
์ด๋, ์ต๊ทผ์ ์ก์ธ์ค๋์ง ์์ ๋ฐ์ดํฐ๋ ๋์ค์๋ ์ก์ธ์ค๋ ๊ฐ๋ฅ์ฑ์ด ๋ฎ์ ๊ฒ์ด๋ผ๋ ๊ฐ์ ์ ์ ์ ํ๋ค.
์ด๋ฅผ ํตํด, ์์ฃผ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ๋ ์ ์งํ๋ฉด์ ๋ถํ์ํ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ์ ๊ฑฐํ๋ค.
๋ ๋์ค๋ LRU ์๊ณ ๋ฆฌ์ฆ์ ์ด์ฉํ ๋ ๊ฐ์ง ์ค์ ๊ฐ์ ๊ฐ์ง๊ณ ์๋ค.
๐นvolatile-lru
๋ง๋ฃ ์๊ฐ์ด ์ค์ ๋ผ ์๋ ํค์ ํํด์ LRU ๋ฐฉ์์ผ๋ก ํค๋ฅผ ์ญ์ ํ๋ค.
๋ง๋ฃ ์๊ฐ์ด ์ค์ ๋ผ ์๋ ๋ฐ์ดํฐ ์ค ๊ฐ์ฅ ์ค๋ ์ฌ์ฉ๋์ง ์์ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ค.
ํน์ง
- ์์ ๋ฐ์ดํฐ ๊ด๋ฆฌ์ ์ ํฉํ๋ค.
- ๋ง๋ฃ ์๊ฐ์ด ์๋ ๋ฐ์ดํฐ๋ ์ญ์ ๋์์ด ์๋๋ค.
- ๋ชจ๋ ํค์ TTL์ด ์์ผ๋ฉด noeviction ์ํฉ๊ณผ ๋์ผํ๊ฒ ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ค.
๐นallkeys-LRU
๋ชจ๋ ํค์ ๋ํด LRU ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ค.
๋ง๋ฃ ์๊ฐ์ด ์ค์ ๋์ง ์์ ๋ฐ์ดํฐ๋ ์ญ์ ๊ฐ๋ฅํ ๋ฐฉ์์ด๋ค.
ํน์ง:
- ์บ์ ๋ฐ์ดํฐ๋ฟ๋ง ์๋๋ผ ๋ชจ๋ ๋ฐ์ดํฐ์ ์ ์ฉ ๊ฐ๋ฅํ๋ค.
- ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ์ผ๋ก ์ธํ ์ฅ์ ์ํฉ ๋ฐฉ์ง์ ์ ๋ฆฌํ๋ค.
- ๋ ๋์ค๋ฅผ ์บ์๋ก ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๊ฐ ์ค์ํ ๋๊ท๋ชจ ํธ๋ํฝ ํ๊ฒฝ์ ์ ํฉํ๋ค.
(๋ ๋์ค๋ฅผ ์บ์๋ก ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๊ถ์ฅํ๋ ๋ฐฉ์)
3๏ธโฃ LFU eviction
LFU(Least Frequently Used) eviction:
๋ ๋์ค์์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๊ฐ๋ ์ฐผ์ ๋ ๊ฐ์ฅ ์ฌ์ฉ ๋น๋๊ฐ ๋ฎ์ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ ์ ๋ต์ด๋ค.
์์ฃผ ์ฌ์ฉ๋์ง ์๋ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ก๋ ์ฌ์ฉ๋ ๊ฐ๋ฅ์ฑ์ด ๋ฎ๋ค๊ณ ๊ฐ์ ํ์ฌ ๋ฉ๋ชจ๋ฆฌ ํจ์จ์ฑ์ ๋์ด๋ ๋ฐฉ์์ด๋ค.
LFU๋ LRU์ ์ ์ฌํ์ง๋ง ํค๋ฅผ ์ก์ธ์คํ๋ ํจํด์ ๋ฐ๋ผ ์ฐ์ ์์๊ฐ ์ ๋์ ์ผ๋ก ๋ฐ๋๋ค๋ ์ ์์ ํน์ ์ผ์ด์ค์์๋ LRU๋ณด๋ค ๋ ํจ์จ์ ์ผ ์ ์๋ค. ํค๊ฐ ์ค๋ซ๋์ ์ฌ์ฉ๋์ง ์์๋๋ผ๋ ๊ณผ๊ฑฐ์ ์์ฃผ ์ก์ธ์คํ๋ ํค๋ผ๋ฉด ๋์ค์๋ ์์ฃผ ์ฌ์ฉ๋ ์ ์๋ค๋ ๊ฐ์ ํ์ ์ฐ์ ์์๊ฐ ๋์์ง๋ค.
LFU ๋ํ ๋ค์ ๋ ๊ฐ์ง ์ค์ ๊ฐ์ ๊ฐ์ง๊ณ ์๋ค.
๐นvolatile-lfu
๋ง๋ฃ ์๊ฐ์ด ์ค์ ๋ผ ์๋ ํค์ ํํด์ LFU ๋ฐฉ์์ผ๋ก ํค๋ฅผ ์ญ์ ํ๋ค.
ํน์ง:
- TTL ๊ธฐ๋ฐ ๋ฐ์ดํฐ ๊ด๋ฆฌ์ ์ ํฉํ๋ค.
- ๋ง๋ฃ ์๊ฐ์ด ์๋ ๋ฐ์ดํฐ๋ ์ญ์ ๋์ง ์๋๋ค.
- ํน์ ์ํฉ์์ ์ฅ์ ๋ฅผ ์ ๋ฐํ ๊ฐ๋ฅ์ฑ ์๋ค (๋ง๋ฃ๋ ํค๊ฐ ์์ ๊ฒฝ์ฐ).
๐นallkeys-lfu
๋ชจ๋ ํค์ ๋ํด LRU ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ค.
ํน์ง:
- ์บ์ ์์คํ ์์ ๋ฐ์ดํฐ ์ ๊ทผ ๋น๋ ๊ด๋ฆฌ์ ์ต์ ํ.
- ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ ์ ํจ๊ณผ์ ์ผ๋ก ๋ถํ์ํ ๋ฐ์ดํฐ ์ญ์ ๊ฐ๋ฅ.
๐จ NOTE
LRU์ LFU๋ ๋ชจ๋ ๊ทผ์ฌ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
์ด ์๊ณ ๋ฆฌ์ฆ๋ค์ ๊ฐ์ฅ ์ค๋ ์ฌ์ฉ๋์ง ์์๊ฑฐ๋ ์ฌ์ฉ ๋น๋๊ฐ ๋ฎ์ ํค๋ฅผ ์ฐพ๊ธฐ ์ํด ์ ํํ ๊ณ์ฐ ๋์ ๊ทผ์ฌ์น๋ฅผ ์ฌ์ฉํ์ฌ CPU์ ๋ฉ๋ชจ๋ฆฌ ๋ฆฌ์์ค ์๋น๋ฅผ ์ต์ํํ๋ค.
์ฆ, ๋ ๋์ค๋ ์ ํํ ํค๋ฅผ ์ฐพ๋ ๊ฒ๋ณด๋ค ํน์ ํค๋ฅผ ๊ทผ์ฌ์น๋ก ์ฐพ์๋ด ํจ์จ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ ๋ฐฉ์์ผ๋ก ์๋ํ๋ค.
4๏ธโฃ RANDOM eviction
RANDOM eviction(๋๋ค ์ ๊ฑฐ ์ ์ฑ ):
๋ ๋์ค์ ์ ์ฅ๋ ํค ์ค ํ๋๋ฅผ ๋ฌด์์๋ก ์ ํํ์ฌ ์ญ์ ํ๋ ์ ๋ต์ด๋ค.
๋ณ๋์ ์๊ณ ๋ฆฌ์ฆ ๊ณ์ฐ ์์ด ๋จ์ํ๊ฒ ๋์ํ๊ธฐ ๋๋ฌธ์, ์ญ์ ๋ ํค ๊ฐ์ ๊ณ์ฐํ์ง ์์๋ ๋๋ค๋ ์ ์์ ๋ ๋์ค์ ๋ถํ๋ฅผ ์ค์ฌ์ค ์ ์๋ ๋ฐฉ๋ฒ์ด๋ค.
ํ์ง๋ง ์ด ๋ฐฉ๋ฒ์ ๋๋ค์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๊ธฐ ๋๋ฌธ์ ๋์ค์ ์ฌ์ฉ๋ ์๋ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ ๊ฐ๋ฅ์ฑ์ด ๋์์ง๋ค.
๋ํ, LFU์ LRU๋ ๊ทผ์ฌ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๊ทธ๋ค์ง ํฐ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค.
๋ฐ๋ผ์ ๊ถ์ฅ๋์ง ์๋๋ค.
random eviction๋ ๋ค์๊ณผ ๊ฐ์ ๋ ๊ฐ์ง ์ค์ ๊ฐ์ ๊ฐ์ง๊ณ ์๋ค.
- volatile-random : ๋ง๋ฃ ์๊ฐ์ด ์ค์ ๋ผ ์๋ ํค์ ํํด ๋๋คํ๊ฒ ํค ์ญ์
- allkeys-random : ๋ชจ๋ ํค์ ๋ํด ๋๋คํ๊ฒ ํค ์ญ์
5๏ธโฃ volatile-ttl
volatile-ttl ๋ฐฉ์:
๋ง๋ฃ ์๊ฐ์ด ๊ฐ์ฅ ์์ ํค๋ฅผ ์ญ์ ํ๋ ์ ๋ต์ด๋ค.
์ญ์ ์์ ์๊ฐ์ด ์ผ๋ง ๋จ์ง ์์ ํค๋ฅผ ์ถ์ถํด ํด๋น ํค๋ฅผ ๋ฏธ๋ฆฌ ์ญ์ ํ๋ ์ต์ ์ด๋ค.
์ด ์๊ณ ๋ฆฌ์ฆ ๋ํ LRU, LFU์ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ทผ์ฌ ์๊ณ ๋ฆฌ์ฆ์ ์ด์ฉํ๋ค.
๋ฐ๋ผ์ ์ ์ฅ๋ ๋ชจ๋ ํค๋ฅผ ์ค์บํ๋ฉด์ ๋ง๋ฃ ์๊ฐ์ ๋น๊ตํ์ง ์์๋ ๋ผ ๊ฐ๋จํ๊ฒ ํค๋ฅผ ์ฐพ์๋ผ ์ ์๋ค.
๐ ์ถ์ฒ
<๊ฐ๋ฐ์๋ฅผ ์ํ ๋ ๋์ค> - ๊น๊ฐ๋ฆผ
'Redis' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ ๋์ค ์บ์ ์คํฌํผ๋ ํ์ (Cache Stampede) (1) | 2025.02.07 |
---|---|
Redis๋? (๋ ๋์ค๊ฐ ์ฑ๊ธ์ฐ๋ ๋๋ก ๋์ํ๋ ์ด์ ) (0) | 2025.01.30 |