반응형
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
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.
반응형
'Redis' 카테고리의 다른 글
[Redis] AWS EC2에서 Redis를 활용해보자! (2) (0) | 2024.10.25 |
---|---|
[Redis] AWS EC2에서 Redis를 활용해보자! (1) (0) | 2024.10.25 |
[Redis] 로컬에서 Spring Boot + Redis 사용해보자! (2) (0) | 2024.10.25 |
[Redis] 로컬에서 Spring Boot + Redis 사용해보자! (1) (0) | 2024.10.25 |
[Redis] Redis 캐싱 전략이 궁금해! (0) | 2024.10.25 |