[Redis] #1 Redis(레디스)란 무엇인가?

2024. 9. 9. 01:06· 웹 개발 공부 : Back-end/Redis
목차
  1.  
  2. 1. NoSQL
  3. 2. Redis
  4. 3. Redis의 정보 및 특징
  5. 4. 정리
  6. Cf. Redis VS 멤캐시드
반응형

 

1. NoSQL

Redis의 개념을 알기 위해선 먼저 NoSQL에 대한 개념을 알아야한다. NoSQL이란, 'Not only SQL'의 약자로, JSON 형태로 저장되는 데이터베이스를 말한다. NoSQL을 처음 들어본 사람들은 ' SQL을 쓰지 않는 데이터베이스인가?' 라며 혼동되기도 한다.

 

또한, NoSQL은 RDBMS가 커버하지 못하는 기능을 제공하기도 한다. 한 가지 예로 'Flexible Schema'를 제공한다. Flexible Schema란, 영단어 뜻에서도 알 수 있듯이 스키마에 대해 유연성을 제공해주는 기능이다.

 

예를 들어, RDMS에서 '학생'이라는 스키마를 정의한다면, 학생ID(pk), 이름은 varchar, 나이, 학년은 int, 입학일자는 date 등, 제한된 스키마를 정의해야한다. 하지만 NoSQL에서의 학생 스키마는 철수, 영희 등 각각의 스키마를 적용할 수 있으며, 스키마별로 새로운 항목을 추가할 수 있다.

// RDBMS '학생' schema
CREATE TABLE Student {
    id			VARCHAR(255)	PRIMARY KEY,
    name		VARCHAR(255)		   ,
    age			INTEGER			   ,
    grade		INTEGER			   ,
    enter_date		TIMESTAMP
}
// NoSQL Flexible Schema

// '철수' 스키마
{
    id : '2011-001'.
    name : "김철수",
    age : 17,
    grade : 1,
    enter_date : "2011/03/02"
}

// '영희' 스키마
{
    id : '2009-001'.
    name : "김영희",
    age : 19,
    grade : 3,
    enter_date : "2009/03/02",
    favorite_subject : "Math"
}

 

 

2. Redis

Redis는 먼저 데이터를 'Key-Value' 즉, JSON 형태로 저장하는 오픈소스 NoSQL 데이터베이스이다. 또한, 모든 데이터를 '메모리'에 저장하고 조회하는 '인메모리' 데이터베이스 솔루션이다. Redis는 데이터를 'RAM'에 저장하기 때문에, 저장 및 조회 속도가 매우 빠르다.

 

 

3. Redis의 정보 및 특징

1) 영속성을 지원하는 인메모리 데이터베이스

2) 읽기 성능 증대를 위한 서버 측 복제를 지원한다.

3) 쓰기 성능 증대를 위한 클라이언트 측 샤딩을 지원한다.

    (샤딩 : 대규모 데이터베이스를 여러 머신에 저장하는 데이터 처리 기법)

4) Redis는 대부분 언어와 포팅되어 있다. (Java, Python, C, C++ 등)

5) 많은 서비스에서 사용되며, 성능적으로 검증된 솔루션이다.

6) 문자열, 리스트, 해시, 셋, 정렬된 셋 등 다양한 자료구조를 지원한다. 다양한 기능을 구현할 수 있다.

 

 

4. 정리

Redis를 한마디로 정리하자면, '고성능 Key-Value 저장소로서 문자열, 리스트, 셋 등 다양한 자료구조를 지원하는 NoSQL이다.'

 

 

Cf. Redis VS 멤캐시드

먼저, Redis와 멤캐시드의 공통점은 데이터를 메모리에 저장하여 빠른 읽기/쓰기 성능을 제공한다는 점은 같다.

 

하지만, Redis는 NoSQL이며 즉, '데이터베이스'이다. 멤캐시드는 데이터베이스가 아니다. 동적 웹 서비스의 DB 부하를 덜어주는 '고성능 분산 메모리 객체 캐싱 시스템' (어후 길다^^;) 이다.

 

 

 

다음 포스팅에는 실제 Redis를 설치해보고 간단하게 사용해보는 글을 써보겠다.

반응형

'웹 개발 공부 : Back-end > Redis' 카테고리의 다른 글

[Redis] Redis 맛보기 - 2 (Redis 지원 자료구조 및 관련 명령어)  (0) 2024.09.10
[Redis] Redis 맛보기 - 1 (설치 및 기본설정)  (0) 2024.09.09
  1.  
  2. 1. NoSQL
  3. 2. Redis
  4. 3. Redis의 정보 및 특징
  5. 4. 정리
  6. Cf. Redis VS 멤캐시드
'웹 개발 공부 : Back-end/Redis' 카테고리의 다른 글
  • [Redis] Redis 맛보기 - 2 (Redis 지원 자료구조 및 관련 명령어)
  • [Redis] Redis 맛보기 - 1 (설치 및 기본설정)
Developer KTU
Developer KTU
Developer KTU
KTU 개발 블로그
Developer KTU
전체
오늘
어제
  • 분류 전체보기
    • 웹 개발 공부 : Back-end
      • JAVA
      • JPA
      • JAVA - Spring
      • MySQL
      • Docker
      • Redis
      • JSP
      • DevOps
      • 파이썬 - 장고
      • 운영체제
      • WEB
    • 블록체인
    • 웹 개발 공부 : Front-end
      • React
      • Javascript
      • JQuery
      • Ajax
    • 알고리즘 공부
    • 나의 커리어

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Java
  • SpringBoot
  • Python
  • 백엔드개발자
  • 백엔드
  • 파이썬
  • 컴퓨터공학
  • 알고리즘공부기
  • 자바
  • Back-end
  • 알고리즘
  • 백준
  • 스프링부트
  • BOJ
  • JavaScript
  • 코딩테스트
  • 웹개발
  • 알고리즘공부
  • Algorithm
  • 자바스크립트

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
Developer KTU
[Redis] #1 Redis(레디스)란 무엇인가?
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.