OPEN HYPER STEP
← 목록으로 (Redis)
REDIS · 27 / 34
redis
CHAPTER 27 / 34
읽기 약 2
FUNCTION

실시간 채팅 Pub/Sub


핵심 개념

Redis Pub/Sub와 Socket.io를 결합하여 다중 서버 실시간 채팅을 구현합니다.

코드 분석
REDIS📋 코드 (20줄)
// npm install socket.io @socket.io/redis-adapter
import { createAdapter } from '@socket.io/redis-adapter'

const pub = redis
const sub = redis.duplicate()
await sub.subscribe('socket.io#/#')

io.adapter(createAdapter(pub, sub))

// 채팅 룸 처리
io.on('connection', (socket) => {
  socket.on('join', (room) => socket.join(room))

  socket.on('message', async ({ room, msg }) => {
    // 메시지 저장 (최근 50개)
    await redis.lpush(`chat:${room}`, JSON.stringify(msg))
    await redis.ltrim(`chat:${room}`, 0, 49)
    io.to(room).emit('message', msg)
  })
})

AI 프롬프트
🤖 AI에게 잘 물어보는 법 — 모델·전략별 프롬프트
Claude

무료: Sonnet 4.6 / Pro $20/mo: Opus 4.6

이 Redis '실시간 채팅 Pub/Sub' 사용 패턴에서
데이터 유실 위험·TTL 누락·메모리 누수를
분석해서 프로덕션 수준으로 개선해줘.
ChatGPT

무료: GPT-5.5 / Plus $20/mo: GPT-5.5 Pro

'실시간 채팅 Pub/Sub'를 캐싱·세션·큐 3가지 시나리오에 적용하는
실전 코드를 만들어줘.
Gemini

무료: 2.5 Flash / Pro $19.99/mo: 3.1 Pro

이 Redis '실시간 채팅 Pub/Sub' 사용 패턴이
클러스터의 키 분포·메모리 사용량·레이턴시에 미치는 영향을
분석하고 최적화 방안을 알려줘.
Grok

무료: Grok 4.1 / SuperGrok $30/mo

Redis '실시간 채팅 Pub/Sub' vs Memcached·Valkey·DragonflyDB의
동일 기능 구현을 2026년 기준으로
솔직히 비교해줘.

⭐ 이것만 기억하세요
실시간 채팅 Pub/Sub 이 3가지만 확실히 잡으세요
1.서버가 여러 대일 때 WebSocket만으로는 다른 서버에 연결된 사용자에게 메시지를 전달할 수 없습니다
2.Redis Pub/Sub를 브로커로 사용하면 어떤 서버에서 발행한 메시지든 모든 서버의 구독자에게 전달됩니다
3.다음 챕터에서 캐시된 데이터의 일관성을 유지하는 무효화 전략을 배웁니다


공유하기
진행도 27 / 34