KAKAO.GG
Redis

Redis 키는 영어랑 숫자만 사용해야할까?

GG
2025. 7. 18.
조회 74
#Redis key naming#Redis binary safe string key#Redis 키 문제#Redis 키 에러

Redis는 영어랑 숫자만 취급해야할까요?

정답은 "아닙니다." 하지만 실무에서는 영어와 숫자만 사용하는 게 좋습니다. 코드를 작성할 때 영어로 작성하는 걸 보면 당연한 결과일 수 있지만 이유를 살펴보겠습니다.

 

Redis는 키는 사실 다 됩니다.

UTF-8 완벽 지원

Redis는 키를 바이너리 안전(binary safe)하게 처리합니다. 즉, UTF-8로 인코딩된 어떤 문자든 키로 사용할 수 있죠.

# Redis CLI에서 직접 테스트
127.0.0.1:6379> SET "한글키" "값도한글"
OK

127.0.0.1:6379> SET "日本語キー" "値も日本語"
OK

127.0.0.1:6379> SET "🚀이모지키" "로켓발사"
OK

 

그럼 왜 영어랑 숫자를 사용해야할까?

1. 실제로 마주친 문제

@Cacheable(
    value = "souvenirCosmeticSearch",
    key = "'category:' + #category + ':page:' + #page"
)

카테고리 "메이크업"이 들어오자 500 에러가 터졌습니다. Redis의 문제가 아니라 Spring Cache 레이어에서 문제가 생긴 거죠.

  • Spring Cache의 키 생성
  • 직렬화/역직렬화
  • 클라이언트 라이브러리의 인코딩
  • 여러 레이어를 거치며 발생하는 인코딩 불일치

 

영어/숫자를 써야 하는 현실적인 이유는 바로 URL..

Redis뿐 아니라 다른 내용에서도 비슷하겠지만, 문자를 제대로 표시하지 못합니다. 특히 Redis Insight에서 한글 키를 보면 표시를 못하는 문제까지 발생합니다.

❌ /api/products?category=화장품 → 브라우저에서 %ED%99%94%EC%9E%A5%ED%92%88
✅ /api/products?category=cosmetics → 깔끔!

 

UTF-8 사용해도 기술적으로 한글, 일본어, 중국어 등 다양한 언어는 지원하지만 호환성, 가독성, URL 문제를 생각해서라도 영어, 숫자 사용을 권장합니다.