DB의 종류에는 여러가지가 있다.
그중 redis 라는 DB를 같이 공부해보자는 스터디를 진행하기로 해서 관련내용들을 정리해보고자 한다.
이 포스팅은 다른글과 다르게 제대로 알아보거나 학습할 시간이 부족하여 다소 퀄리티가 떨어질수가 있다.
하지만 스터디의 취지는 완벽한 학습이 아닌 추후에 사용해보기위해
어색함을 줄이고 기초사용법을 익히는 것이라 기록용으로 남겨두고자 한다.
먼저 우리는
https://www.youtube.com/playlist?list=PLtUgHNmvcs6qoVrxB5jzZ4meINz_KL-Bl
이 강의를 기반으로 레디스를 찍먹 해보기로 하였다.
관련내용을 정리해보겠다.
Redis 란?
Redis 는 Remote Dictionary Server 의 약자로, 키-값 구조를 사용해 데이터를 저장하고 관리하는
오픈소스 기반의 NoSQL 데이터베이스 이다
쉽게말해, 비정형 데이터를 빠르게 처리하는 고성능 데이터베이스 이다.
Redis 의 특징
- 빠른 데이터 처리 속도
- In-memory 데이터베이스 -> 메모리(RAM) 에 저장하여 빠른 읽기/쓰기 를 지원
- MySQL 과 같은 관계형데이터베이스(RDBMS) 는 데이터를 디스크에 저장
- 키-값 저장 구조
- 데이터를 key-value 형식으로 저장
- 키를 통해 값을 조회하는 방식
- 단순하지만 매우 효율적이고 빠른 데이터 처리 속도를 제공
Redis 의 장점
- 빠른 처리 성능 : 인메모리 DB 라서 대용량 트래픽을 처리할때 빠른 응답속도가 강점
- 확장성 : Redis 는 클러스터 모드를 통해 데이터를 여러 서버에 분산 가능
- 단순한 구조 : Redis 는 비교적 간단한 API 를 제공
Redis 의 주요 사용사례
Redis는 속도가 중요한 분야에서 많이 사용된다. 대표적인 사용사례는 다음과 같다
- 캐싱 (Caching) : Redis 는 데이터를 메모리에 저장하여 빠르게 조회가능, 자주 조회되는 데이터를 캐시로 저장하여 데이터 조회 성능을 향상 시킬 수 있음
- 세션 관리 (Session Management) : 사용자의 세션 데이터를 Redis에 저장하면, 빠른 세션 관리가 가능
- 실시간 분석 및 통계 : 실시간으로 데이터를 분석하고 처리하는 데 유용
- 메시지 큐 (Message Queue) : Redis 는 Pub/Sub 모델을 지원하여 메시지 큐로도 많이 사용
- 지리공간 인덱싱(Geospatial Indexing) : Redis 는 위치 기반 데이터를 처리할 수 있는 기능도 제공
- 속도 제한(Rate Limiting) : 특정 요청의 속도를 제한하는 데 사용될 수 있음
- 실시간 채팅 및 메시징 : 빠른 응답 속도를 요구하는 실시간 채팅 애플리케이션에도 사용된다.
Redis 기본 명령어
1. 데이터 저장
$ set {key} {value}
2. 데이터 조회
$ get {key}
3. 모든 키 조회
$ keys *
4. 데이터 삭제
$ del {key}
5. 만료시간(TTL) 설정
$ set {key} {value} ex {seconds}
6. 만료 시간 확인
$ ttl {key}
- -1 : 키가 없을 때
- -2 : 키가 만료되어 삭제되었을 때
7. 모든 키 삭제
$ flushall
Redis 의 캐싱 전략
Redis 는 캐시 시스템으로 많이 사용되며, 효율적인 캐시 전략을 적용하는 것이 중요
대표적인 캐시 전략은 Cache Aside 와 Write Around 가 있다.
- Cache Aside (Lazy Loading) : 캐시에서 먼저 데이터를 조회하고, 없으면 데이터베이스에서 조회하여 캐시에 저장하는 방식
- Write Around : 데이터를 캐시에는 저장하지 않고, 데이터베이스에만 반영하는 방식
간단한 활용 예시
import redis
# Redis 서버에 연결
r = redis.StrictRedis(host='localhost', port=6379, db=0)
# 데이터 저장
r.set('username', 'Alice')
# 데이터 조회
print(r.get('username')) # b'Alice'
Redis 와 DBMS(관계형 데이터베이스)
Redis 는 MySQL, PostgreSQL 과 같은 관계형데이터베이스(RDBMS) 와 기본적인 접근 방식에서 차이가 있다.
RDBMS 는 데이터를 디스크에 저장하고, SQL 쿼리를 통해 데이터를 조회하는 방식이다.
하지만 Redis 는 메모리에 데이터를 저장하고, 키를 통해 값을 바로 조회하는 방식이므로 훨씬 빠른 속도를 제공한다.
- RDBMS 는 데이터를 안전하게 저장하고, 트랜잭션을 관리하는 데 유리하다
- Redis 는 빠른 속도가 필요한 캐싱, 세션 관리, 실시간 처리 등의 용도로 사용된다.
따라서 Redis 는 데이터베이스의 보조 역할 로 사용되는 경우가 많다
예를 들어 MySQL 에서 데이터를 조회할 때 속도가 중요한 경우, Redis 를 캐시로 사용하여 조회 성능을 크게 향상시킬 수 있다.
'DB' 카테고리의 다른 글
[Redis] redis 스터디 - WebSocket 을 이용해 채팅기능을 구현하기 (3) | 2024.12.22 |
---|---|
[Redis] redis 스터디 - DB를 redis 로 이용한 ToDo리스트 만들기 (2) | 2024.12.22 |