✅ Redis란?
레디스(Redis)는 Remote Dictionary Server의 약자로서, “키-값” 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터베이스 관리 시스템(DBMS)이다.
즉, Redis는 데이터 처리 속도가 엄청 빠른 NoSQL 데이터베이스이다.
NoSQL 데이터베이스를 풀어서 얘기하자면 Key-Value의 형태로 저장하는 데이터베이스라고 생각하면 된다.
✅ Redis의 장점
레디스(Redis)는 인메모리(in-memory)에 모든 데이터를 저장한다. 그래서 데이터의 처리 성능이 굉장히 빠르다.
MySQL과 같은 RDBMS의 데이터베이스는 대부분 디스크(Disk)에 데이터를 저장한다. 하지만 Redis는 메모리(RAM)에 데이터를 저장한다. 디스크(Disk)보다 메모리(RAM)에서의 데이터 처리속도가 월등하게 빠르다. 이 때문에 Redis의 데이터 처리 속도가 RDBMS에 비해 훨씬 빠르다.
Redis 주요 사용 사례
- 캐싱 (Caching)
- 세션 관리 (Session Management)
- 실시간 분석 및 통계 (Real-time Analystics)
- 메시지 큐 (Message Queue)
- 지리공간 인덱싱 (Geospatial Indexing)
- 속도 제한 (Rate Limiting)
- 실시간 채팅 및 메시징 (Real-time Chat And Messaging)
Redis 기본 명령어
✅ 데이터(Key, Value) 저장하기
# set [key 이름] [value]
$ set dong:name "donghyeon yang" # 띄워쓰기 해서 저장하려면 쌍따옴표로 묶어주면 됨
$ set dong:hobby soccer
✅ 데이터 조회하기 (Key로 Value 값 조회하기)
# get [key 이름]
$ get dong:name
$ get dong:hobby
$ get dong:name # 없는 데이터를 조회할 경우 (nil)이라고 출력됨
✅ 저장된 모든 key 조회하기
$ keys *
✅ 데이터 삭제하기 (Key로 데이터 삭제하기)
# del [key 이름]
$ del dong:hobby
$ get dong:hobby # 삭제됐는 지 확인
✅ 데이터 저장 시 만료시간(TTL) 정하기
레디스는 RDBMS와는 다르게 데이터 저장 시 만료시간을 설정할 수 있다. 즉, 영구적으로 데이터를 저장하지 않고 일정 시간이 되면 데이터가 삭제되도록 셋팅할 수 있다.
레디스의 특성상 메모리 공간이 한정 되어 있기 때문에 모든 데이터를 레디스에 저장할 수 없다. 따라서 만료시간(TTL)을 활용해 자주 사용하는 데이터만 레디스에 저장해놓고 쓰는 식으로 활용한다.
# set [key 이름] [value] ex [만료 시간(초)]
$ set dong:pet dog ex 30
✅ 만료시간(TTL) 확인하기
# ttl [key 이름]
# 만료 시간이 몇 초 남았는 지 반환
# 키가 없는 경우 -2를 반환
# 키는 존재하지만 만료 시간이 설정돼 있지 않은 경우에는 -1을 반환
$ ttl dong:pet
$ ttl dong:name
$ ttl dong:name
✅ 모든 데이터 삭제하기
$ flushall
Key 네이밍 컨벤션
콜론(:)을 활용해 계층적으로 의미를 구분해서 사용
- users:100:profile : 사용자들(users) 중에서 PK가 100인 사용자(user)의 프로필(profile)
- products:123:details : 상품들(products) 중에서 PK가 123인 상품(product)의 세부사항(details)
'🏛️Infra > Redis' 카테고리의 다른 글
부하 테스트를 통해 Redis 적용 전후 성능 비교 (0) | 2025.03.16 |
---|---|
AWS EC2에서 Redis 활용 (0) | 2025.03.15 |
스프링부트 프로젝트에 적용해보기 (0) | 2025.03.15 |
Redis 캐싱 전략 (0) | 2025.03.15 |