Database - Redis

김준영·2023년 2월 6일
1

CS공부

목록 보기
11/20

Redis란?


빠른 오픈 소스 인 메모리 키 값 데이터 구조 스토어

보통 데이터베이스는 하드 디스크나 SSD에 저장한다. 하지만 Redis는 메모리(RAM)에 저장해서 디스크 스캐닝이 필요없어 매우 빠른 장점이 존재함.

Redis는 Memcached와 비슷한 캐시 시스템으로서 동일한 기능을 제공하면서 영속성, 다양한 데이터 구조와 같은 부가적인 기능을 지원하고 있다. 레디스는 모든 데이터를 메모리에 저장하고 조회하는 인메모리 데이터베이스이다.

다른 인메모리 DB들과 가장 큰 차이점은 Redis의 다양한 자료구조입니다.

이렇게 다양한 자료구조를 지원해 개발의 편의성이 좋아지고 난이도도 낮아진다는 장점이 있다. 예를들어, 어떤 데이터를 정렬을 해야하는 상황이 있을 때, DBMS를 이용한다면 DB에 데이터를 저장하고, 저장된 데이터를 정렬하여 다시 읽어오는 과정은 디스크에 직접 접근을 해야하기 때문에 시간이 더 걸린다는 단점이 있습니다. 하지만 이 때 In-Memory 데이터베이스인 Redis를 이용하고 레디스에서 제공하는 Sorted-Set이라는 자료구조를 사용하면 더 빠르고 간단하게 데이터를 정렬할 수 있습니다.

NoSQL로서 Key-Value 타입의 저장소인 Redis(Redis, Remote Dictionary Server)의 주요 특징은 아래와 같다.

  • 영속성을 지원하는 인메모리 데이터 저장소
  • 읽기 성능 증대를 위한 서버 측 복제를 지원
  • 쓰기 성능 증대를 위한 클라이언트 측 샤딩(Sharding) 지원
  • 다양한 서비스에서 사용되며 검증된 기술
  • 문자열, 리스트, 해시, 셋, 정렬된 셋과 같은 다양한 데이터형을 지원. 메모리 저장소임에도 불구하고 많은 데이터형을 지원하므로 다양한 기능을 구현

즉,

레디스는 고성능 키-값 저장소로서 문자열, 리스트, 해시, 셋, 정렬된 셋 형식의 데이터를 지원하는 NoSQL이다.

Redis 영속성

Redis는 지속성을 보장하기 위해 데이터를 DISK에서 저장할 수 있다. 서버가 내려가도 DISK에 저장된 데이터를 읽어서 메모리에 로딩을 한다.

데이터를 DISK에 저장하는 방식은 크게 두가지가 있다

  • RDB(Snapshotting) 방식
    • 순간적으로 메모리에 있는 내용을 DISK에 전체를 옮겨 담는 방식, 특정 지점을 설정하고 디스크에 백업
  • AOF(Append Only File) 방식
    • Redis의 모든 write/update 연산 자체를 모두 log파일에 기록하는 형태, 명령(쿼리)들을 저장해두고, 서버가 셧다운되면 재실행해서 다시 만들어 놓는 것

데이터 구조는 key/value 값으로 이루어져 있다. (따라서 Redis는 비정형 데이터를 저장하는 비관계형 데이터베이스 관리 시스템이다)

value 5가지
1. String (text, binary data) - 512MB까지 저장이 가능함
2. set (String 집합)
3. sorted set (set을 정렬해둔 상태)
4. Hash
5. List (양방향 연결리스트도 가능)


참조 : https://github.com/gyoogle/tech-interview-for-developer/blob/master/Computer%20Science/Database/Redis.md, https://devlog-wjdrbs96.tistory.com/374

profile
ㅎㅎ

0개의 댓글