๐๏ธ๐จย ์๋ ํ์ธ์, ์ด์์ ๋๋ค! ์ด๋ฒ ํฌ์คํ ์์๋ Redis๋ ๋ฌด์์ด๊ณ ํน์ง๊ณผ ์ฅ์ ๊ทธ๋ฆฌ๊ณ ์ฃผ์ ์ฌ์ฉ ์ฌ๋ก์ ๋ํ ์์๋ฅผ ์์ฑํ๊ณ ์ ํด์.
Redis(RE
mote DI
ctionary S
erver)๋ ์คํ ์์ค ๊ธฐ๋ฐ์ ๊ณ ์ฑ๋ฅ ํค-๊ฐ ์ ์ฅ์์ด๋ฉฐ, ๋ฉ๋ชจ๋ฆฌ ๋ด ๋ฐ์ดํฐ ๊ตฌ์กฐ ์ ์ฅ ๋ฐ ๊ฒ์์ ์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ฌ์ฉํด์. Redis๋ NoSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค ํ๋๋ก, ์ฃผ๋ก ์บ์ฑ, ์ธ์
๊ด๋ฆฌ, ๋ฉ์์ง ๋ธ๋ก์ปค, ๋๊ธฐ์ด ์ฒ๋ฆฌ ๋ฑ ๋ค์ํ ์ฉ๋๋ก ํ์ฉ๋ผ์.
Redis๋ ํนํ ๋ฉ๋ชจ๋ฆฌ ๋ด ๋ฐ์ดํฐ ์ ์ฅ์ผ๋ก ๋น ๋ฅธ ์๋ต ์๋๋ฅผ ์ ๊ณตํ๋ฉฐ, ๋์คํฌ์ ๋ฐ์ดํฐ๋ฅผ ์ง์์ ์ผ๋ก ์ ์ฅํ์ฌ ๋ฐ์ดํฐ ์์ค์ ๋ฐฉ์งํ ์๋ ์์ด์. ๋ํ ๋ค์ํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ง์ํ๋ฉฐ, ๋ฌธ์์ด, ๋ฆฌ์คํธ, ํด์, ์งํฉ, ์ ๋ ฌ ์งํฉ๊ณผ ๊ฐ์ ๋ฐ์ดํฐ ํ์ ์ ๋ค๋ฃฐ ์ ์์ด ๋ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ์์ ํ์ฉ ๊ฐ๋ฅํด์.
Redis๋ Pub-Sub ๋ฉ์ปค๋์ฆ์ ํตํด ๋ฉ์์ง ๋ธ๋ก์ปค๋ก๋ ํ์ฉ๋๋ฉฐ, ํด๋ผ์ด์ธํธ ๊ฐ ๋ฉ์์ง ์ ๋ฌ ๋ฐ ์ด๋ฒคํธ ๊ธฐ๋ฐ ์ํคํ ์ฒ์์ ํ์ฉํ ์ ์์ด์. Redis์ ๊ณ ์ฑ๋ฅ๊ณผ ๋ค์ํ ๊ธฐ๋ฅ์ ์น ์ ํ๋ฆฌ์ผ์ด์ , ๊ฒ์ ์๋ฒ, ์ค์๊ฐ ๋ถ์, ์บ์ฑ, ๋๊ธฐ์ด ์ฒ๋ฆฌ ๋ฑ ๋ค์ํ ๋ถ์ผ์์ ๋๋ฆฌ ์ฌ์ฉ๋๊ณ ์์ด์.
DB-ENGINES์์ ์ ๊ณตํ ๋ญํน์ ๋ฐ๋ฅด๋ฉด ์ ์ฒด ๋ฐ์ดํฐ ๋ฒ ์ด์ค์์๋ 2023๋ 9์ ๊ธฐ์ค 6์๋ฅผ ๊ธฐ๋กํ๊ณ ์์ผ๋ฉฐ, ํค-๋ฒจ๋ฅ ์ ์ฅ์(Key-Value Store)์์๋ 1์๋ฅผ ๊ธฐ๋กํ๊ณ ์์ ์ ๋๋ก ๋ง์ ๊ด์ฌ์ ๋ฐ๊ณ ์์ด์!
DB-Engines Ranking - ์ ์ฒด ์์
DB-Engines Ranking - ํค ๋ฒจ๋ฅ ์์
์ธ๋ฉ๋ชจ๋ฆฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค
: Redis๋ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ๋ฏ๋ก ๋น ๋ฅธ ์๋ต ์๋๋ฅผ ์ ๊ณตํด์.๋ค์ํ ๋ฐ์ดํฐ ํ์
: Redis๋ ๋ฌธ์์ด, ๋ฆฌ์คํธ, ํด์, ์งํฉ, ์ ๋ ฌ ์งํฉ๊ณผ ๊ฐ์ ๋ค์ํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ง์ํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ค์ํ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์๊ตฌ์ฌํญ์ ์ฒ๋ฆฌํ๊ธฐ ์์ํด์.์์์ฑ
: Redis๋ ๋์คํฌ์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ์ ์ฅํ์ฌ ๋ฐ์ดํฐ์ ์ง์์ฑ์ ์ ๊ณตํด์. ์ด๋ฅผ ํตํด ์์คํ
์ฅ์ ์์๋ ๋ฐ์ดํฐ ์์ค์ ๋ฐฉ์งํ ์ ์์ด์.Pub-Sub ๋ฉ์์ง
: Redis๋ Publish-Subscribe ๋ฉ์ปค๋์ฆ์ ์ง์ํ์ฌ ๋ฉ์์ง ๋ธ๋ก์ปค๋ก ์ฌ์ฉํ ์ ์์ด์. ์ด๋ฅผ ํตํด ์ด๋ฒคํธ ๊ธฐ๋ฐ ์์คํ
์ ๊ตฌ์ถํ๊ฑฐ๋ ๋ฉ์์ง ์ ๋ฌ์ ํ์ฉํ ์ ์์ด์.ํธ๋์ญ์
/ ์ฑ๊ธ ์ค๋ ๋
: Redis๋ ๋ฉํฐ ๋ช
๋ น์ด๋ฅผ ์์์ ์ผ๋ก ์คํํ๋ ํธ๋์ญ์
์ ์ง์ํด์. ์ด๋ฅผ ํตํด ์ฌ๋ฌ ์์
์ ์์์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์์ด์. ์ด๋ฌํ ํธ๋์ญ์
์ ์ง๊ฐ ๊ฐ๋ฅํ ์ด์ ๋ Redis๊ฐ ์ฑ๊ธ ์ค๋ ๋ ๊ธฐ๋ฐ์ผ๋ก ๋์ํ๊ธฐ ๋๋ฌธ์ด์์. ๋ฐ๋ผ์ Redis๋ฅผ ์ ์ดํดํ๊ณ ์ฌ์ฉํ ๊ฒฝ์ฐ ์ฌ์ด๋ ์ดํํธ๊ฐ ๊ฑฐ์ ์๋ ๋งค์ฐ ์์ ์ ์ธ ์๋น์ค๋ฅผ ๊ตฌ์ถํ ์ ์์ด์.ํด๋ฌ์คํฐ๋ง
: Redis๋ ๋ฐ์ดํฐ ์ค๋ฉ๊ณผ ๋ ํ๋ฆฌ์ผ์ด์
์ ํตํด ๊ณ ๊ฐ์ฉ์ฑ ๋ฐ ํ์ฅ์ฑ์ ์ ๊ณตํ๋ ํด๋ฌ์คํฐ๋ฅผ ๊ตฌ์ฑํ ์ ์์ด์.LRU ์บ์ ๋ฐ ๋ง๋ฃ ์๊ฐ
: Redis๋ ๋ฐ์ดํฐ๋ฅผ ์๋์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด LRU (Least Recently Used) ์๊ณ ๋ฆฌ์ฆ๊ณผ ๋ง๋ฃ ์๊ฐ(Time-to-Live)์ ์ง์ํด์.ํธ๋ฌ๋ธ์ํ
: ๋ง์ ์ฌ์ฉ์๋ค์ด ์กด์ฌํ์ฌ ๋น์ทํ ๋ฌธ์ ํด๊ฒฐ ์ฌ๋ก๊ฐ ๋ง์ผ๋ฉฐ, ์ปค๋ฎค๋ํฐ ๋์ ๋ฐ๊ธฐ ์์ํด์.Redis๋ ๋น ๋ฅธ ์ฝ๊ธฐ์ ์ฐ๊ธฐ ์ฑ๋ฅ์ ์ ๊ณตํ์ง๋ง, ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ ์์คํ ์ด ์ข ๋ฃ๋๊ฑฐ๋ ์ฌ์์ ๋ฐ ์ฅ์ ๊ฐ ๋ฐ์๋์์ ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฐ์ดํฐ๊ฐ ์๊ตฌ์ ์ผ๋ก ๋ณด์กด๋์ง ์์์. ์ด๋ฌํ ์ด์ ๋ Redis๊ฐ ๋ฉ๋ชจ๋ฆฌ ๋ด์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ๋๋ฌธ์ด์์. ๋ฐ๋ผ์ Redis๋ ์ด๋ฌํ ๋จ์ ์ ๋ณด์ํ๊ธฐ ์ํด ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ๋ค์ ์ ๊ณตํ๊ณ ์์ด์.
RDB ์ค๋ ์ท์ ์ฃผ๊ธฐ์ ์ผ๋ก Redis ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ค๋ ์ท์ ๋์คํฌ์ ์ ์ฅํ๋ ๋ฐฉ๋ฒ์ด์์. ์ด๋ฌํ ์ค๋ ์ท์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ์ฌ ์ํ๋ฅผ ์ค๋ ์ท ํ์ผ๋ก ์ ์ฅํ์ฌ, ํ์ ์ ๋ฐ์ดํฐ๋ฅผ ๋ณต๊ตฌํ๋ ๋ฐ ์ฌ์ฉํด์.
AOF ๋ก๊ทธ๋ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋ก๊ทธ ํ์ผ์ ๊ธฐ๋กํ๋ ๋ฐฉ๋ฒ์ด์์. Redis ์๋ฒ๊ฐ ๋ค์ ์์๋ ๋ ์ด ๋ก๊ทธ๋ฅผ ์ฌ์คํํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๋ณต๊ตฌํด์. AOF ๋ก๊ทธ๋ ์ค๋ ์ท๊ณผ ํจ๊ป ์ฌ์ฉํ ์ ์์ด์.
์์์ ์ ๊ณตํ๋ ๋ฐฉ๋ฒ๋ค ๋ชจ๋ ์ฌ์ฉํ์ง ์๊ฑฐ๋ RDB์ AOF ๋๊ฐ์ง ์ต์ ์ ๊ฐ๊ฐ ์ฌ์ฉํ๊ฑฐ๋ ๋ ๊ฐ์ง ์ต์ ์ ๋ชจ๋ ์ฌ์ฉํ ์ ์์ด์. ์ฌ์ฉ์๋ ๋น์ฆ๋์ค ํ๊ฒฝ์ ๋ง์ถฐ ์กฐ์ ํ์ฌ ์ฌ์ฉํ ์ ์์ด์..
์บ์ฑ(Cashing)
: ์์ ๋น๋ฐ๋ฒํธ(One-Time Password), ๋ก๊ทธ์ธ ์ธ์
(Session), JWT(JSON Web Token), ์ผ์ ์ฃผ๊ธฐ๋ก ๊ฐฑ์ ํด๋ ๊ด์ฐฎ์ ๋ฐ์ดํฐ, ๋์ผํ ์ฐ์ฐ์ ๋ฐ๋ฅธ ๊ฒฐ๊ณผ์ค์๊ฐ ๋ถ์
: ์์(Rank), ์ค์๊ฐ ์ด๋ฒคํธ ๋ก๊ทธ ์ฒ๋ฆฌ, ๋ฐฉ๋ฌธ์ ์ ๊ณ์ฐPub/Sub ํจํด
: ์ค์๊ฐ ์ฑํ
, ์ด๋ฒคํธ ๋ฉ์์ง ์ฒ๋ฆฌํ(Queue)
: ์ฐ์ ์์ ํ, ์ด๋ฉ์ผ ์ ์กRedis๋ ๋น ๋ฅธ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ ์ฑ๋ฅ์ ์ ๊ณตํ๋ ๋ฉ๋ชจ๋ฆฌ ๊ธฐ๋ฐ ์คํ ์์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค์์. ์ด๋ฒ ํฌ์คํ ์์ Redis์ ์ค์ํ ํน์ง๊ณผ ์ฅ์ , ์์์ฑ ๊ทธ๋ฆฌ๊ณ ๋ค์ํ ํ์ฉ ์ฌ๋ก์ ๋ํด ์ดํด๋ณด์์ด์.
Redis๋ ๋ฉ๋ชจ๋ฆฌ ๋ด ๋ฐ์ดํฐ ์คํ ์ด๋ก์ ๋ฐ์ดํฐ ๊ฒ์ ๋ฐ ์กฐ์์ ์ฐ์ํ ์ฑ๋ฅ์ ์ ๊ณตํ๋ฉฐ, ์บ์ฑ, ์ธ์ ์คํ ์ด, ๋๊ธฐ์ด ๊ด๋ฆฌ ๋ฑ ๋ค์ํ ์ฉ๋๋ก ์ฌ์ฉํ๋ฉฐ, Pub/Sub ๋ฉ์ปค๋์ฆ์ ํตํด ์ค์๊ฐ ์ด๋ฒคํธ ์ฒ๋ฆฌ์ ๋ฉ์์ง ์์คํ ์ผ๋ก๋ ํ์ฉ๋ผ์.
๋ฐ์ดํฐ์ ์์์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด ์ค๋ ์ท๊ณผ AOF ๋ก๊ทธ๋ฅผ ์ง์ํ๋ฉฐ, ๋ฐ์ดํฐ ์์ค์ ์ต์ํํ๊ณ ์์ ์ฑ์ ๋์ผ ์ ์์ด์. Redis๋ ๋ค์ํ ์ธ์ด์ ํ๋ ์์ํฌ์์ ์ฌ์ฉํ ์ ์๋ ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ง์ํ์ฌ ๊ฐ๋ฐ ์์ฐ์ฑ์ ํฅ์์ํฌ ์ ์์ด์.
์ด๋ฌํ ํน์ง๊ณผ ์ฅ์ ๋ค์ Redis๋ฅผ ์ค์๊ฐ ์ ํ๋ฆฌ์ผ์ด์ , ๋๊ท๋ชจ ์น ์๋น์ค, ๊ฒ์ ์๋ฒ, ์ค์๊ฐ ๋ถ์, ์์น ๊ธฐ๋ฐ ์๋น์ค ๋ฑ ๋ค์ํ ํ๊ฒฝ์์ ํ์ฉ ๊ฐ๋ฅํ๊ฒ ํ๊ณ , ๋์ ์ฑ๋ฅ๊ณผ ๋ค์ํ ํ์ฉ์ฑ์ ๊ฐ์ง ๊ฐ๋ ฅํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก, ํ๋์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ํ์์ ์ธ ๋๊ตฌ ์ค ํ๋๋ผ๊ณ ์๊ฐํด์. Redis๋ฅผ ์ ์ฌ์ ์์ ํ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์๊ธฐ๋ฅผ ๋ฐ๋ผ์๐!