API 응답이 느려서 Redis 캐시를 도입하려고 합니다. 기본적인 캐싱 패턴을 알려주세요.
Redis 캐시 기본 패턴 (Cache-Aside):
const redis = require("redis").createClient();async function getUser(id) { // 1. 캐시 확인 const cached = await redis.get(`user:${id}`); if (cached) return JSON.parse(cached); // 2. DB 조회 const user = await db.user.findById(id); // 3. 캐시에 저장 (TTL 5분) await redis.setEx(`user:${id}`, 300, JSON.stringify(user)); return user;}// 데이터 변경 시 캐시 무효화async function updateUser(id, data) { await db.user.update(id, data); await redis.del(`user:${id}`); // 캐시 삭제}
캐싱 패턴:
주의: 캐시 무효화가 가장 어렵습니다. TTL을 적절히 설정하고, 데이터 변경 시 반드시 캐시를 삭제하세요.
댓글 1
Redis 캐시 기본 패턴 (Cache-Aside):
캐싱 패턴:
주의: 캐시 무효화가 가장 어렵습니다. TTL을 적절히 설정하고, 데이터 변경 시 반드시 캐시를 삭제하세요.