zoaseo 2025. 1. 28. 20:26

- Redis(Remote Dictionary Server) : 데이터 처리 속도가 엄청 빠른 NoSQL 데이터베이스이다. Key-Value 형태로 저장.

 

- 장점

  • 레디스는 인메모리(in-memory)에 모든 데이터를 저장한다.
  • MySQL과 같은 RDBMS의 데이터베이스는 대부분 디스크(Disk)에 데이터를 저장한다. 하지만 Redis는 메모리(RAM)에 데이터를 저장한다. 디스크(Disk)보다 메모리(RAM)에서의 데이터 처리속도가 월등하게 빠르다. 이 때문에 Redis의 데이터 처리 속도가 RDBMS에 비해 훨씬 빠르다.

- 주요 사용 사례

  • 캐싱 (Caching)
  • 세션 관리 (Session Management)
  • 실시간 분석 및 통계 (Real-time Analystics)
  • 메시지 큐 (Message Queue)
  • 지리공간 인덱싱 (Geospatial Indexing)
  • 속도 제한 (Rate Limiting)
  • 실시간 채팅 및 메시징 (Real-time Chat And Messaging)

- 기본 명령어 익히기

- 데이터 (Key, Value) 저장하기

# set [key 이름] [value]
$ set jaeseong:name "jaeseong park" # 띄워쓰기 해서 저장하려면 쌍따옴표로 묶어주면 됨
$ set jaeseong:hobby soccer

 

- 데이터 조회하기 (Key로 Value 값 조회하기)

# get [key 이름]
$ get jaeseong:name
$ get jaeseong:hobby

$ get pjs:name # 없는 데이터를 조회할 경우 (nil)이라고 출력됨

 

- 저장된 모든 key 조회하기

$ keys *

 

- 데이터 삭제하기 (Key로 데이터 삭제하기)

# del [key 이름]
$ del jaeseong:hobby

$ get jaeseong:hobby # 삭제됐는 지 확인

 

 

- 데이터 저장 시 만료시간(TTL) 정하기

# set [key 이름] [value] ex [만료 시간(초)]
$ set jaeseong:pet dog ex 30

 

 

- 만료시간(TTL) 확인하기

# ttl [key 이름]
# 만료 시간이 몇 초 남았는 지 반환
# 키가 없는 경우 -2를 반환
# 키는 존재하지만 만료 시간이 설정돼 있지 않은 경우에는 -1을 반환
$ ttl jaeseong:pet 
$ ttl jaeseong:name
$ ttl pjs:name

 

 

- 모든 데이터 삭제하기

$ flushall

 

- 실무에서 자주 활용하는 네이밍 컨벤션

- 콜론(:) 을 활용해 계층적으로 의미를 구분해서 사용

  • users:100:profile : 사용자들(users) 중에서 PK가 100인 사용자(user)의 프로필(profile)
  • products:123:details : 상품들(products) 중에서 PK가 123인 상품(product)의 세부사항(details)

- 이러한 컨벤션의 장점

  • 가독성 : 데이터의 의미와 용도를 쉽게 파악할 수있다.
  • 일관성 : 컨벤션을 따름으로써 코드의 일관성이 높아지고 유지보수가 쉬워진다.
  • 검색 및 필터링 용이성 : 패턴 매칭을 사용해 특정 유형의 Key를 쉽게 찾을 수 있다.
  • 확장성 : 서로 다른 Key와 이름이 겹쳐 충돌할 일이 적어진다.