redis
CHAPTER 27 / 34
읽기 약 2분
FUNCTION
실시간 채팅 Pub/Sub
핵심 개념
Redis Pub/Sub와 Socket.io를 결합하여 다중 서버 실시간 채팅을 구현합니다.
코드 분석
// 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