어플리케이션 아키텍처(Architecture) 단계에서 많이 고려되는 Redis 데이터저장소에 대하여 자세히 알아봅니다. Redis는 무엇이고 어떤 장점과 단점이 있는지 그리고 설치하는 방법 등에 대하여 알아봅니다.



# Redis란 무엇인가, Redis의 이해

Redis는 Remote Dictionary Server의 약자입니다. Redis는 In-Memory 방식으로 메모리를 사용하여 CRUD를 수행, 데이터를 저장하는 Data Storage입니다. NoSQL 방식의 데이터베이스로 Redis는 다른 데이터저장소에 사용되는 하드디스크(HDD), SSD 방식이 아닌 메모리를 사용하므로 성능 및 속도가 매우 빠르다는 장점이 있습니다. 다만 메모리는 용량에 따른 비용이 기하급수적으로 커지기 때문에 일반적으로 텍스트 위주의 데이터를 처리하는데 적합합니다.

Redis는 많은 기업들에서 사용되며 우리가 잘 아는 Instagram, Facebook, Stackoverflow 등에서 사용됩니다.

그럼 아래에서 Redis의 특징 및 장점과 단점에 대하여 더 자세하게 알아봅니다.


! Redis Server Structure

- Machine1             - Machine2
===========          ==========
- Redis       -               = Redis  =
- Console  -       ->     = Server =
- Client       -              =              =
==========            ========

! Redis 특징Redis의 주요 특징은 아래와 같습니다.

  • - Memory 방식의 Storage 구조
  • - Key, Value 타입의 사용
  • - 주 데이터베이스의 캐싱(Caching) 목적으로 많이 사용
  • - Snapshot 사용 가능
  • - Single Thread(싱글 쓰레드) 방식

; Redis의 Key는 String인 문자만 사용됩니다. Value는 다양한 타입이 사용되며 String 이외 Array를 비롯... Binary 역시 사용 가능합니다. 이런 이유로 Image(Ex. test.png 등등) 역시 저장이 가능한 특징이 있습니다.


# Redis 장점 및 단점


! Redis의 장점- 매우 빠름. 1초 이내 만 번까지 조회가 가능하다 함
- 구조가 단순하고 쉽게 사용(Key, Value)
- AWS를 비롯한 대부분의 Cloud 서비스에서 지원

! Redis의 단점- 대용량 데이터, 영상, 이미지 등의 미디어는 적합하지 않음
- 확장, 성능에 따른 상대적 비용이 급격히 높아짐


# Redis 설치하기, install

redis-server를 리눅스에 설치하는 경우 아래와 같이 명령어를 입력합니다.
$ sudo apt-get redis-server



# Redis CLI 알아보기


! Redis 버전 확인하기
$ redis-server --version


redis-server restart



# 참고하기참고로 Redis 서버를 주서버로 사용하는 경우 데이터의 보존, 복구, 싱크등의 이유로 여러개의 Machine을 사용하여 구성됩니다. 이 경우 주로 하나의 Master Machine과 여러대의 Slave Machine 형태로 사용됩니다. 또한 Machine들 사이의 Communication이 매우 주요합니다.