◈ 이 책에서 다루는 내용 ◈
◆ 마이크로서비스 아키텍처에서 NoSQL 활용
◆ 레디스 설치, 환경 구성 및 기본 설정 파일 안내
◆ 레디스의 다양한 자료구조 활용법
◆ 효율적인 키 관리 방법
◆ 레디스를 이용해 성능을 향상시키는 다양한 실제 사용 예제
◆ 레디스를 캐시 및 세션 스토어로 활용하는 방법
◆ 레디스를 메세지 브로커로 활용하는 pub/sub 및 stream 사용법
◆ 레디스 데이터의 영구 저장 방법
◆ 고가용성 설정을 위한 복제 구조 및 센티널 활용
◆ 확장성을 갖춘 클러스터 사용 방법
◆ 클라이언트 핸들링과 보안
◆ 레디스 모니터링 구성 및 버전 업그레이드 방법
◈ 이 책의 대상 독자 ◈
◆ 인메모리 데이터베이스 개념을 처음 접하거나 알고 싶은 개발자
◆ 레디스를 어떤 상황에서 효율적으로 활용할 수 있을지 고민 중인 개발자
◆ 레디스의 장애를 최소화하는 방법을 찾는 개발자
◆ 고가용성과 확장성을 갖춘 레디스를 운영하고자 하는 개발자
◈ 이 책의 구성 ◈
1장에서는 소프트웨어 아키텍처의 변화와, 이로 인해 현대의 데이터 저장소가 어떤 요구 사항에 직면했는지 알아본다.
2장에서는 레디스를 설치하고, 실행하며, 간단하게 사용하는 방법을 소개한다.
3장에서는 레디스에서 제공하는 자료 구조의 종류와 특징, 각 자료 구조에서 사용할 수 있는 커맨드에 대해 알아볼 것이다. 또한 레디스에서 키는 어떻게 다뤄지는지도 살펴본다.
4장에서는 특정 상황에서 레디스의 자료 구조를 적절히 활용해 애플리케이션의 성능을 향상시키며, 동시에 개발의 단순함과 편의성을증대할 수 있는 방법을 소개한다.
5장에서는 레디스를 캐시로 사용하는 방법을 알아본다. 캐시란 무엇인지, 어떤 상황에서 캐시를 사용해야 하는지, 레디스를 캐시로 잘 사용하는 방법과 주의해야 할 점은 무엇인지 짚어본다. 또한 캐시와 비슷하면서도 다른 세션 스토어에 대해서도 함께 이야기할 것이다.
6장에서는 메시지 브로커의 핵심 역할을 알아보고, 메시지 브로커의 두 가지 형태인 메시징 큐와 이벤트 stream에 대해 소개한다.
7장에서는 데이터를 안전하게 저장하기 위해 레디스에서 지원하는 (RDB와 AOF)두 가지 백업 방식에 대해 알아본다.
8장부터는 레디스에서 고가용성을 보장하기 위한 기능들을 알아볼 것이다. 8장에서는 고가용성의 기본이 되는 복제 메커니즘에 대해 설명한다.
9장에서는 자동 페일오버 기능을 수행하는 자체 솔루션인 센티널의 개념과 동작 방식을 설명한다.
10장에서는 고가용성과 샤딩을 동시에 보장하는 클러스터 모드에 대해 알아볼 것이다.
11장에서는 레디스에서 제공하는 보안 기능에 대해 알아본다. bind 설정은 레디스가 사용할 ip를 지정한다. 레디스의 이전 버전에서는 각 인스턴스에 하나의 패스워드만 설정할 수 있었다. 하지만 버전 6에서 도입된 ACL 기능을 이용하면 유저를 생성한 뒤 각 유저별로 다른 패스워드를 설정할 수 있으며, 이를 통해 유저 간에 패스워드를 개별적으로 관리하고 다른 권한을 할당할 수 있게 됐다.
12장에서는 레디스가 클라이언트를 처리하는 방법에 대해 살펴볼 것이다. 클라이언트의 요청을 어떻게 처리하는지 그리고 클라이언트 연결을 어떻게 관리하는지를 다룰 예정이다. 또한 클라이언트 연결의 성능을 향상시키기 위한 파이프라이닝과 클라이언트 사이드 캐싱에 대해서도 간략히 살펴볼 것이다.
13장에서는 레디스를 잘 운영하기 위해 알아야 할 내용을 소개한다. 레디스를 장애 없이 운영하기 위해서는 레디스가 구축된 서버와 레디스 인스턴스를 실시간으로 모니터링해 운영 환경에 문제가 생기지 않는지 확인하는 과정이 필수적이다. 아울러 프로메테우스와 그라파나를 이용해 레디스 대시보드를 작성하는 방법에 대해 알아볼 것이다.