본문 바로가기
Redis

[Redis] Redis의 기본 개념부터 다져볼까?

by jn4624 2024. 10. 24.
반응형
Redis를 활용하기 전, 기본 개념부터 다지기 위해 차근차근 기록하며 글을 작성하려 한다.
내 머릿속엔 지우개가 있기 때문에, 그리고 강사님도 내가 이해하기 쉬운 방법으로 정리하라 하셨기에 잘 정리해보자?

 

1. Redis란?

Remote Dictionary Server의 약자로, "Key-Value" 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터베이스 관리 시스템(DBMS)이다.
- 위키백과 -

 

라고 정의되어 있지만 너무 어렵다.

따라서, 나는 아래와 같이 이해하기로 했다.

데이터 처리 속도가 엄청 빠른 NoSQL 데이터베이스이다.

 

여기서 NoSQL은 Key-Value 형태로 데이터를 저장하는 데이터베이스라고 생각하면 쉽다.

 

2. Redis의 장점

장점은 무수히 많겠지만, 많이 활용되는 장점 한가지만 기억하자.

인메모리(in-memory)에 모든 데이터를 저장하기 때문에 데이터 처리 성능이 굉장히 빠르다.

 

MySQL과 같은 RDBMS 형태의 데이터베이스는 디스크(Disk)에 데이터를 저장하지만, Redis는 메모리(RAM)에 데이터를 저장하기 때문에 데이터 처리 속도가 RDBMS에 비해 훨씬 빠르다.

 

3. Redis 주요 사용 사례

어차피 현업에서 가장 많이 사용되는 캐싱(Caching)을 먼저 집중적으로 공부할테지만 추후 하나씩 다른 사례에 대해서도 학습을 넓혀가기 위해 주요 사용 사례를 정리해둔다.

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

 

4. Redis를 설치하자

자, 이제 Redis를 설치해볼건데, Mac 사용 유저로 Mac에서 설치하는 방법만 다룰 예정이다.

Window 사용 유저들은 강사님이 제공해준 링크를 공유해놓을테니 참고하시면 좋을 것 같다.

 

Window 사용 유저 Redis 설치 참고

https://ittrue.tistory.com/318

 

[Redis] 윈도우10 환경에서 레디스 설치하기

Redis 설치 프로그램 다운로드 아래 링크에 접속하여 msi 확장자의 Redis 설치 프로그램을 다운로드한다. https://github.com/microsoftarchive/redis/releases Releases · microsoftarchive/redis Redis is an in-memory database that

ittrue.tistory.com

https://inpa.tistory.com/entry/REDIS-%F0%9F%93%9A-Window10-%ED%99%98%EA%B2%BD%EC%97%90-Redis-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0

 

[REDIS] 📚 Window10 환경에 Redis 설치 & 설정

Redis 윈도우 설치 Redis 다운로드 페이지로 이동하여 설치 프로그램을 다운로드하고 설치를 진행한다. Releases · microsoftarchive/redis Redis is an in-memory database that persists on disk. The data model is key-value, but

inpa.tistory.com

 

Mac 사용 유저 Redis 설치 참고

Homebrew 설치 확인 및 Redis 설치

# homebrew가 정상적으로 설치되었는지 확인하는 명령어
brew --version

# Redis 설치하는 명령어
brew install redis

 

Redis 설치 여부 및 동작 확인

# Redis가 정상적으로 설치되었는지 확인하는 명령어
brew services info redis

# Redis 시작하는 명령어
brew services start redis

# Redis가 정상적으로 시작되었는지 확인하는 명령어
brew services info redis

# Redis 종료하는 명령어
brew services stop redis

 

Redis 접속 및 통신 확인

# Redis에 접속하는 명령어
redis-cli

# Redis와 정상적으로 통신이 되는지 확인하는 명령어
ping

 

5. Redis 기본 명령어를 익혀보자

조회 성능을 개선하기 위해선 명령어 7가지만 알고 있어도 충분하다고 한다.

따라서 기본 명령어 7가지를 머릿속에 잘 넣어두고 나머지 명령어는 필요할 때 찾아서 사용해보지 뭐!

# 데이터 Key-Value 형태로 저장하기
set jnlim:name "jn lim"
set jnlim:hobby tennis

# Key로 Value 조회하기
get jnlim:name
get jnlim:hobby

# 저장된 모든 Key 조회하기
keys *

# 저장된 데이터 삭제하기
del jnlim:hobby

# 만료시간(TTL) 지정해서 데이터 저장하기
set jnlim:pet dog ex 30

# 만료시간(TTL) 얼마나 남았는지 확인하기
ttl jnlim:pet

# 모든 데이터 삭제하기
flushall

 

데이터 Key-Value 형태로 저장하기

  • Value 데이터에 띄어쓰기가 존재할 경우 쌍따옴표(")를 사용해야 한다.

 

만료시간(TTL: Time To Live) 얼마나 남았는지 확인하기

  • 만료시간이 경과되지 않은 경우 -> 만료 시간이 몇 초 남았는지 반환해준다.
  • 데이터가 만료된 경우 -> -2를 반환해준다.
  • 만료시간이 지정되어 있지 않은 경우 -> -1을 반환해준다.

 

6. Redis Key 네이밍 컨벤션을 익혀보자

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

 

계층적으로 의미를 구분해서 규칙을 지어야 데이터를 유추할 수 있기 때문이다.

컨벤션을 지키게 되면 얻을 수 있는 장점에 대해서도 정리해놔야겠다.

 

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

 

Reference.

https://www.inflearn.com/course/%EB%B9%84%EC%A0%84%EA%B3%B5%EC%9E%90-redis-%EC%9E%85%EB%AC%B8-%EC%84%B1%EB%8A%A5-%EC%B5%9C%EC%A0%81%ED%99%94

 

비전공자도 이해할 수 있는 Redis 입문/실전 (조회 성능 최적화편) 강의 | JSCODE 박재성 - 인프런

JSCODE 박재성 | 비전공자 입장에서도 쉽게 이해할 수 있고, 실전에서 바로 적용 가능한 'Redis 입문/실전 (조회 성능 최적화편)' 강의를 만들어봤습니다!, 🤬 에라이, 못 해먹겠네!비전공자로 개발

www.inflearn.com

 

반응형