redis

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

KUKJIN LEE
KUKJIN LEE
2025년 7월 18일
180

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 문제를 생각해서라도 영어, 숫자 사용을 권장합니다.

관련 글

Redis 캐시 키 보안 강화

Redis 캐시를 사용하는 애플리케이션에서 캐시 키 주입 공격 등의 보안 취약점을 예방하고, 안정적인 캐시 시스템 운영을 위해 안전하지 않은 외부 입력값이 캐시 키로 사용될 때 위험을 최소화하는 것을 목표로 하는 기본적인 방법입니다. 보안 강화를 통해 캐시 키 주입 공...

2025년 7월 30일324

Spring Boot와 Redis 기본 설정과 사용법

Spring Boot에서 Redia를 쉽게 연동하고 활용할 수 있도록 돕는 spring-boot-starter-data-redis의존성에 대해 사용 방법을 작성해봤습니다. spring-boot-starter-data-redis란? Spring Boot 환경에서 Redi...

2025년 7월 11일155

Redis Cluster 설정 방법에 대해서 알아보자

Redis는 빠르고 효율적인 인메모리 데이터 저장소로 많이 사용되며, Redis Cluster 를 설정하면 데이터의 분산 저장과 고가용성(High Availability)을 구현할 수 있습니다. Redis Cluster의 기본 개념과 설정 방법 을 쉽게 이해할 수 있도...

2025년 3월 18일451

Redis 샤딩(Sharding), 데이터 분산을 통한 성능 최적화

샤딩(Sharding)이란? Redis는 기본적으로 단일 노드(싱글 인스턴스)에서 데이터를 저장하고 제공 하는 인메모리 데이터베이스입니다. 하지만 데이터가 많아지고 트래픽이 증가하면 한 개의 Redis 인스턴스만으로는 한계를 가질 수 있습니다. ✅ 샤딩(Sharding...

2025년 3월 11일560