수학과의 좌충우돌 프로그래밍

[redis] redis 란 무엇인가 본문

데이터베이스/redis

[redis] redis 란 무엇인가

ssung.k 2020. 1. 22. 21:51

redis 란?

redis 는 Remote Dictionary Server 의 약자로 키-값 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈소스 기반의 비관계형 데이터베이스 관리 시스템 입니다.

비관계형 데이터베이스 관리 시스템을 NoSQL 이라고 하죠. 관계형 데이터베이스 관리 시스템과 비관계형의 비교 분석은 다른 포스팅에서 다시 다루도록 하겠습니다.

현재 삼성전자, 라인, 네이버 등 여러 기업들에서도 redis 를 사용하고 있으며 그 만큼 검증된 오픈소스 솔루션이라고 볼 수 있습니다.

 

redis 의 특징

  • key value

    redis 는 Map 데이터 저장소로서 key 값과 value 값으로 이루어져 있습니다.

    따라서 key 값을 통해 value 값에 쉽게 접근하고 쉽게 저장이 가능합니다.

  • 다양한 데이터 타입

    위 이미지를 통해서도 알 수 있겠지만 value 의 타입이 다양합니다.

    string, lists, sets, sorted sets, hash 와 같은 타입이 가능합니다.

 

  • In-Memory data structure store

    redis 는 디스크가 아닌 메모리 기반의 데이터 저장소 입니다.

    디스크 접근에 걸리는 시간이 없기 때문에 캐시로도 많이 사용됩니다.

    하지만 메모리에만 의존하지 않기 때문에 서버가 shutdown 되더라도 정보가 유실되지 않습니다.

    중간마다 디스크에 저장하는 snapshot 방식을 사용하고 모든 로그를 기록해 서버가 재시작 할 시에 로그를 기준으로 데이터를 복구합니다.

     

 

redis 의 사용사례

  • 캐싱

    위에서도 언급했듯이 In-Memory data structure store 이기 때문에 캐시의 역할을 수행할 수 있습니다.

    다른 데이터베이스의 부하를 막아주는 역할을 합니다.

 

  • 세션 관리

    유저의 정보 관리 등 세션으로서 redis 를 많이 사용하고 있습니다.

     

  • 실시간 순위표

    redis 는 sorted set 이라는 데이터 타입이 존재합니다.

    이를 통해 원하는 값으로 자동 정렬 되어 순위표를 구성할 수 있습니다.

     

  • 대기열

    redis 는 list 라는 데이터 타입이 존재합니다.

    이를 통해 대기열을 손쉽게 구현할 수 있습니다.

 

  • 채팅

    실제 채팅 서비스에서도 redis 를 많이 사용하고 있습니다.

    기본적으로 PUB/SUB 표준을 지원하기 때문에 고성능 채팅방, 서버 상호 통신 등을 구현할 수 있습니다.

 

'데이터베이스 > redis' 카테고리의 다른 글

[Redis] medis, redis 를 위한 GUI 서비스  (0) 2020.01.22
Comments