1. Redis 데이터 타입 개요
- Redis는 강력한 인메모리 데이터 구조 서버로, 다양한 데이터 타입을 기본적으로 지원합니다.
- 각 데이터 타입은 특정 사용 사례에 최적화되어 있어, 개발자가 상황에 맞는 가장 효율적인 데이터 구조를 선택할 수 있습니다.
- 레퍼런스
1.1 Redis Community Edition 지원 데이터 타입
Redis Community Edition에서 기본적으로 제공하는 데이터 타입들은 다음과 같습니다:
- String: 가장 기본적인 데이터 타입으로, 바이트 시퀀스를 저장
- List: 삽입 순서가 유지되는 문자열 컬렉션
- Set: 순서가 없는 유니크한 문자열 집합
- Hash: 필드-값 쌍을 저장하는 레코드 타입
- Sorted Set: 점수에 따라 정렬되는 유니크한 문자열 집합
- Stream: 로그와 같은 추가 전용 데이터 구조
- Bitmap: 비트 단위 연산을 지원하는 문자열 특수 타입
- Bitfield: 문자열 내에서 여러 카운터를 효율적으로 인코딩
- Geospatial: 위치 기반 데이터를 저장하고 처리
정보
Redis Enterprise와 Redis Stack에서는 JSON, 확률적 데이터 타입, 시계열 데이터 등 추가적인 데이터 타입을 제공합니다.
2. Redis 키 설계 원칙
- Redis에서 키는 바이너리 세이프하며, 모든 바이너리 시퀀스를 키로 사용할 수 있습니다.
- 하지만 효율적인 키 설계를 위해 다음 원칙들을 고려해야 합니다.
2.1 키 설계 가이드라인
- 키 길이 최적화
- 너무 긴 키는 메모리 사용량 증가
- 키 검색 시 비교 연산 비용 증가
- 최대 키 크기는 512MB이지만, 간결한 키 사용 권장
- 가독성 있는 네이밍
- 좋은 예:
user:1000:followers
- 피해야 할 예:
u1000flw
- 약간의 메모리 오버헤드는 가독성과 유지보수성으로 상쇄
- 좋은 예:
- 일관된 네이밍 스키마
- 권장 포맷:
object-type:id:field
- 멀티 워드 구분자:
.
또는-
사용 - 예시:
comment:1234:reply.to
또는user:1000:profile-image
- 권장 포맷: