Programming

; develop a program

DataBase/DB 지식

[DB 지식] 레디스(Redis)

Clloud_ 2023. 7. 1. 22:32
반응형

이번 포스팅에서는 오픈 소스 데이터베이스 시스템 중 하나인 레디스(Redis)에 대하여 공부를 해보고자 한다.

 

 


레디스(Redis)란

레디스(Redis)는 인 메모리 데이터 스토어(in-memory data store)로서 널리 사용되는 오픈 소스 데이터베이스 시스템이다.
이를 통해 데이터를 메모리에 저장하고 검색할 수 있으며, 데이터를 디스크에 유지하는 전통적인 디스크 기반 데이터베이스 시스템과는 다른 방식으로 동작한다.

 

 

특징

  • 메모리 기반 데이터 스토어
    레디스는 데이터를 메모리에 저장하여 빠른 읽기와 쓰기 속도를 제공한다.
    이는 디스크 기반 데이터베이스에 비해 뛰어난 성능을 제공한다.

  • 키-값 저장소
    레디스는 단순한 키와 값을 사용하여 데이터를 저장한다.
    이러한 간단한 구조는 데이터 액세스를 빠르고 효율적으로 만들어준다.

  • 다양한 데이터 구조
    레디스는 단순한 문자열 이외에도 리스트, 해시, 세트, 정렬된 세트 등 다양한 데이터 구조를 지원한다.
    이를 통해 복잡한 데이터 처리를 간단하게 수행할 수 있다.

  • 고성능
    레디스는 단일 스레드 모델로 동작한다.
    이는 경쟁 상태나 동기화 문제없이 데이터를 처리할 수 있게 한다.
    또한 비동기적인 특성을 가지고 있어 많은 동시 요청에 대해 높은 처리량과 낮은 지연 시간을 제공한다.

  • 영속성
    레디스는 기본적으로 메모리에 데이터를 저장하지만, 영속성을 지원하여 데이터를 디스크에 유지할 수 있다.
    이를 통해 시스템 재부팅이나 장애 상황에서도 데이터를 보존할 수 있다.

 


레디스(Redis)의 구조

레디스(Redis)는 키-값(key-value) 구조를 사용하는 데이터 스토어이다.
각각의 데이터는 고유한 키와 연결되어 있으며, 키를 사용하여 데이터를 저장하고 검색할 수 있다.
이러한 키-값 구조를 통해 데이터를 간단하게 저장하고 조회할 수 있다.

 

레디스가 지원하는 자료구조

  • 레디스는 다양한 데이터 구조를 지원하여 키와 값이 다양한 형태를 가질 수 있다.

 

주요 데이터 구조

  • 문자열(String)
    단순한 텍스트 데이터를 저장한다.
    키와 값이 모두 문자열 형태로 저장되며, 문자열 값은 최대 512MB까지 저장할 수 있다.
    문자열 데이터뿐만 아니라 숫자, JSON 형식 등도 문자열로 저장될 수 있다.
  • 리스트(List)
    여러 개의 요소가 순서대로 저장되는 데이터 구조
    키와 값 모두 리스트 형태로 저장되며, 값은 중복을 허용하고 순서가 보존된다.
    리스트의 특정 위치에 요소를 추가, 삭제, 수정할 수 있다.

  • 해시(Hash)
    필드-값(field-value) 쌍으로 이루어진 데이터 구조
    키와 값 모두 해시 형태로 저장되며, 필드는 고유한 식별자이고 값은 해당 필드에 대한 데이터
    해시는 객체나 맵과 유사한 형태로 사용된다.

  • 세트(Set)
    중복되지 않는 요소의 모음으로 구성된 데이터 구조
    키와 값 모두 세트 형태로 저장되며, 요소는 중복이 없으며 순서가 없다.
    세트는 교집합, 합집합, 차집합 등의 집합 연산을 수행할 수 있다.

  • 정렬된 세트(Sorted Set)
    세트와 유사하지만 각 요소에 대해 순서 또는 점수가 지정되어 있는 데이터 구조
    키와 값 모두 정렬된 세트 형태로 저장되며, 요소는 고유한 식별자이고 점수는 해당 요소의 순서를 결정하는 기준이다.

 

레디스의 다양한 데이터 구조를 활용하면 다양한 종류의 데이터를 저장하고 처리할 수 있다.
예를 들어, 웹 애플리케이션에서는 사용자 정보를 해시로 저장하고, 세션 데이터를 문자열로 저장하며, 게시판 글 목록을 리스트로 저장하는 등 다양한 데이터 구조를 조합하여 활용할 수 있다.

 


차이점

레디스(Redis)와 관계형 데이터베이스(RDBMS)와의 주요 차이점은 다음과 같다.

  1. 데이터 모델
    • 레디스
      레디스는 키-값(key-value) 구조를 사용하는 NoSQL 데이터 스토어이다.
      데이터는 간단한 키와 값을 가지며, 다양한 데이터 구조를 지원한다.
    • 관계형 데이터베이스
      관계형 데이터베이스는 테이블 기반의 데이터 모델을 사용한다.
      데이터는 여러 테이블에 구조화되어 저장되며, 각 테이블은 열(column)과 행(row)으로 구성된다.

  2. 스키마
    • 레디스
      레디스는 스키마가 없는 데이터베이스이다.
      데이터를 저장할 때 미리 정의된 테이블이나 구조가 필요하지 않는다.
      따라서 유연하게 데이터를 추가하고 수정할 수 있다.

    • 관계형 데이터베이스
      관계형 데이터베이스는 스키마를 사용하여 데이터 구조를 정의한다.
      테이블, 열, 데이터 유형 등을 미리 정의해야 한다.
      데이터를 추가하거나 수정할 때 스키마 규칙을 준수해야 한다.

  3. 쿼리 언어
    • 레디스
      레디스는 간단한 명령어 기반의 쿼리 언어를 사용한다.
      데이터를 저장하고 조회하는데 필요한 기본적인 명령어를 제공한다.
      데이터 구조에 따라 적절한 명령어를 사용하여 데이터를 조작한다.

    • 관계형 데이터베이스
      관계형 데이터베이스는 SQL(Structured Query Language)을 사용하여 데이터를 조작한다.
      SQL은 데이터 검색, 삽입, 갱신, 삭제 등 다양한 작업을 수행할 수 있는 표준화된 쿼리 언어이다.

  4. 확장성
    • 레디스
      레디스는 데이터를 여러 서버에 분산하여 확장할 수 있다.
      데이터의 부하 분산 및 가용성 향상을 위해 클러스터링이나 샤딩(sharding)을 사용할 수 있다.

    • 관계형 데이터베이스
      관계형 데이터베이스도 여러 서버에 분산하여 확장할 수 있지만, 일반적으로 수평적인 확장이 어렵고 수직적인 확장을 주로 사용한다.

  5. 성능
    • 레디스
      레디스는 메모리 기반의 데이터 스토어로서 매우 빠른 읽기와 쓰기 성능을 제공한다.
      단일 스레드 모델과 비동기 처리로 인해 높은 처리량과 낮은 지연 시간을 가진다.

    • 관계형 데이터베이스
      관계형 데이터베이스는 디스크 기반의 데이터베이스로서 상대적으로 느린 읽기와 쓰기 성능을 가진다.
      다수의 동시 요청을 처리하는 데는 한계가 있을 수 있다.

 

이러한 차이점으로 인해 레디스는 주로 성능이 중요한 실시간 애플리케이션, 캐싱, 세션 저장소 등에 사용되고, 관계형 데이터베이스는 복잡한 데이터 구조와 트랜잭션 처리가 필요한 애플리케이션에 주로 사용된다.

 


반응형

'DataBase > DB 지식' 카테고리의 다른 글

[DB 지식] 저장 프로시저(Stored PROCEDURE)  (0) 2023.06.25
[DB 지식] 트랜잭션(Transaction)  (0) 2023.06.09