[Redis] 1️⃣ Redis는 데이터베이스인가?

바이너리·2022년 8월 9일
0

Redis

목록 보기
1/1
post-thumbnail

Redis(레디스)는 BSD 라이센스의 오픈소스 프로젝트이자 인메모리 데이터 저장소입니다.

목적에 따라 데이터베이스/캐시/메시지브로커/스트리밍엔진과 같은 용도로 다양하게 사용할 수 있습니다.
레디스는 또한 자체적으로 레플리케이션(Replication), Lua 스트립트, LRU 교체, 트랜잭션, 퍼시스턴스, 센티넬을 활용한 고가용성, 레디스 클러스터를 활용한 원자적 파티셔닝을 제공합니다.

Key-Value Store

레디스는 기본적으로 Key-Value 쌍의 형태로 데이터를 저장합니다.

127.0.0.1:6379> set id:username "binary"
OK
127.0.0.1:6379> set id:email 483759@naver.com
OK
127.0.0.1:6379> get id:username
"binary"

Data Store

컬렉션을 포함한 다양한 자료구조를 분산 서버 환경에서 처리할 수 있습니다.

  • String
  • Hash
  • List
  • Set
  • (range query가 가능한)Sorted Set
  • Bitmap
  • Hyperloglog
  • Geospatial Index
  • Stream

Pub/Sub 지원

Publish/Subscribe 기능을 지원해서 서버 간 통신이 가능합니다.

영속성

현재 메모리 상태의 스냅샷을 기록하는 RDB, 지금까지 실행된 명령어 집합을 저장하는 AOF를 통해 메모리 상태를 영속화할 수 있습니다.

RDB가 실제 관계형 데이터베이스와 같은 기능을 지원하는 것은 아니나, 메모리를 덤프해서 다시 올리는 것이 가능합니다.

AOF는 Append Only File로, set/del과 같은 CUD 관련 명령어를 기록합니다.

두 명령어 모두의 장단점이 존재하니 성능 손실과 영속화의 트레이드 오프를 적절히 계산하여 활용하는 것이 좋습니다.

복제

마스터/슬레이브 레플리케이션이 가능합니다.

마스터 노드에 장애가 발생하면 슬레이브에서 서비스 하거나, 읽기 부하를 분산하는 방식으로 처리할 수 있습니다.

대규모 서비스 운영 시에 반드시 활용되는 기능입니다.

빠른 속도

초당 5만~6만QPS 이상의 처리 속도가 가능합니다.

출처 - Redis 운영 관리: Redis를 실무에 사용하기 전에 꼭 알아야 하는 실전 전략

profile
01101001011010100110100101101110

0개의 댓글