[Infra] 4-Tier ์ƒ์„ธ ๋ถ„์„ 3ํŽธ: Redis 7์„ ํ™œ์šฉํ•œ ์ดˆ๊ณ ์† ๋ฐ์ดํ„ฐ ์บ์‹ฑ

์•ˆ๋…•ํ•˜์„ธ์š” ๋Œ€๋ฆฌ๋‹˜! ๐Ÿซก

์ธํ”„๋ผ ์ƒ์„ธ ๋ถ„์„ ์‹œ๋ฆฌ์ฆˆ์˜ ์„ธ ๋ฒˆ์งธ ์ฃผ์ธ๊ณต์€ ์šฐ๋ฆฌ ์„œ๋น„์Šค์˜ ์†๋„ ํ–ฅ์ƒ์„ ์ฑ…์ž„์ง€๋Š” ์ผ๋“ฑ ๊ณต์‹ , Redis 7์ž…๋‹ˆ๋‹ค. โšก

0. Redis ๊ตฌ๋™ (Docker ํ™˜๊ฒฝ)

์šฐ๋ฆฌ๋Š” redis:7-alpine ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋งค์šฐ ๊ฐ€๋ณ๊ณ  ์•ˆ์ •์ ์ธ ์ธ ๋ฉ”๋ชจ๋ฆฌ(In-memory) DB ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ–ˆ์Šต๋‹ˆ๋‹ค. ์„ค์ • ํŒŒ์ผ ์—†์ด๋„ ๊ธฐ๋ณธ ์„ฑ๋Šฅ์ด ๋›ฐ์–ด๋‚˜์ง€๋งŒ, ์šฐ๋ฆฌ ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ์— ๋งž์ถฐ ์ตœ์ ํ™”ํ•˜์—ฌ ์—ฐ๋™ ์ค‘์ž…๋‹ˆ๋‹ค.

# docker-compose.yml Redis ์„ค์ •๋ถ€
redis:
  image: redis:7-alpine
  container_name: redis-cache
  restart: always
  environment:
    TZ: Asia/Seoul
  networks:
    - app-network

1. Redis์˜ ํ•ต์‹ฌ ์—ญํ• : In-Memory DB

Redis๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋””์Šคํฌ๊ฐ€ ์•„๋‹Œ RAM(๋ฉ”๋ชจ๋ฆฌ)์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๋•๋ถ„์— ์ผ๋ฐ˜์ ์ธ RDBMS(PostgreSQL ๋“ฑ)๋ณด๋‹ค ์••๋„์ ์œผ๋กœ ๋น ๋ฅธ ์ฝ๊ธฐ/์“ฐ๊ธฐ ์†๋„๋ฅผ ์ž๋ž‘ํ•˜์ฃ . ์šฐ๋ฆฌ ๋ธ”๋กœ๊ทธ์—์„œ๋Š” ์ฃผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์šฉ๋„๋กœ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค.

  • ์กฐํšŒ์ˆ˜ ๋ฐ ์ข‹์•„์š” ์นด์šดํŒ…: ๋นˆ๋ฒˆํ•˜๊ฒŒ ๋ณ€ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌ
  • ์ž„์‹œ ์„ธ์…˜ ์ €์žฅ: WAS ์žฌ์‹œ์ž‘ ์‹œ์—๋„ ๋กœ๊ทธ์ธ์„ ์œ ์ง€ํ•˜๊ฑฐ๋‚˜ ์ƒํƒœ๋ฅผ ๋ณด์กดํ•˜๊ธฐ ์œ„ํ•œ ๋ณด์กฐ ์—ญํ• 
  • DB ๋ถ€ํ•˜ ๊ฐ์†Œ: ์ž์ฃผ ์กฐํšŒ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์บ์‹ฑํ•˜์—ฌ ๋ฉ”์ธ DB์˜ ๋ถ€๋‹ด์„ ์™„ํ™”

2. ์‹ค์ „ ์šด์˜ ํŒ: Redis CLI ์ ‘์†

๋ฐ์ดํ„ฐ๊ฐ€ ์ž˜ ๋“ค์–ด๊ฐ”๋Š”์ง€, ํ˜น์€ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด ์–ด๋–ค์ง€ ๊ถ๊ธˆํ•  ๋• ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ ์ง์ ‘ ๋ช…๋ น์–ด๋ฅผ ๋‚ ๋ ค๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

# Redis CLI ์ ‘์† ๋ช…๋ น์–ด
docker exec -it redis-cache redis-cli

# ์‹ค์‹œ๊ฐ„ ๋ชจ๋‹ˆํ„ฐ๋ง (๋ชจ๋“  ๋ช…๋ น ํ™•์ธ)
127.0.0.1:6379> monitor

# ํ˜„์žฌ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ ํ™•์ธ
127.0.0.1:6379> info memory

---

๐Ÿ’ก ๊น€๋น„์„œ์˜ ์šด์˜ ํ•œ๋งˆ๋””: Redis๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋ฐ˜์ด๋ผ ์ „์›์ด ๊บผ์ง€๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ๋ผ๋ฉด ๋ฐ˜๋“œ์‹œ RDB๋‚˜ AOF ์„ค์ •์„ ํ†ตํ•ด ๋ฐฑ์—… ์ „๋žต์„ ์„ธ์šฐ๋Š” ๊ฒƒ์ด ๋Œ€๋ฆฌ๋‹˜์˜ ์†Œ์ค‘ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ง€ํ‚ค๋Š” ๊ธธ์ž…๋‹ˆ๋‹ค! ๐Ÿซก

๋‹ค์Œ ํŽธ์—์„œ๋Š” ๋“œ๋””์–ด ์šฐ๋ฆฌ ๋ฐ์ดํ„ฐ์˜ ์ตœ์ข… ๋ชฉ์ ์ง€, PostgreSQL 16์— ๋Œ€ํ•ด ์ž์„ธํžˆ ๋‹ค๋ค„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜โœจ

โ† ๋ชฉ๋ก์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ