목차
1장. 마이크로서비스 아키텍처와 레디스
__NoSQL의 등장 배경
____모놀리틱 아키텍처
____마이크로서비스 아키텍처
____데이터 저장소 요구 사항의 변화
__NoSQL이란?
____실시간 응답
____확장성
____고가용성
____클라우드 네이티브
____단순성
____유연성
__NoSQL 데이터 저장소 유형
____그래프 유형
____칼럼 유형
____문서 유형
____키-값 유형
__레디스란?
____레디스의 특징
__마이크로서비스 아키텍처와 레디스
____데이터 저장소로서의 레디스
____메시지 브로커로서의 레디스


2장. 레디스 시작하기
__레디스 설치하기
____소스 파일을 이용해 레디스 설치하기
____리눅스에 레디스 설치하기
____MacOS에 레디스 설치하기
____윈도우에 레디스 설치하기
__레디스 환경 구성
____서버 환경 설정 변경
____레디스 설정 파일 변경
__레디스 실행하기
____프로세스의 시작과 종료
____레디스 접속하기
____데이터 저장과 조회


3장. 레디스 기본 개념
__레디스의 자료 구조
____string
____list
____hash
____Set
____sorted Set
____비트맵
____Hyperloglog
____Geospatial
____stream
__레디스에서 키를 관리하는 법
____키의 자동 생성과 삭제
____키와 관련된 커맨드


4장. 레디스 자료 구조 활용 사례
__sorted set을 이용한 실시간 리더보드
__sorted set을 이용한 최근 검색 기록
__sorted set을 이용한 태그 기능
__랜덤 데이터 추출
__레디스에서의 다양한 카운팅 방법
____좋아요 처리하기
____읽지 않은 메시지 수 카운팅하기
____DAU 구하기
__hyperloglog를 이용한 애플리케이션 미터링
____Geospatial Index를 이용한 위치 기반 애플리케이션 개발
____위치 데이터란
____레디스에서의 위치 데이터


5장. 레디스를 캐시로 사용하기
__레디스와 캐시
____캐시란?
____캐시로서의 레디스
____캐싱 전략
__캐시에서의 데이터 흐름
____만료 시간
____메모리 관리와 maxmemory-policy 설정
____캐시 스탬피드 현상
__세션 스토어로서의 레디스
____세션이란?
____세션 스토어가 필요한 이유
____캐시와 세션의 차이


6장. 레디스를 메시지 브로커로 사용하기
__메시징 큐와 이벤트 스트림
____레디스를 메시지 브로커로 사용하기
__레디스의 pub/sub
____메시지 publish하기
____메시지 구독하기
____클러스터 구조에서의 pub/sub
____sharded pub/sub
__레디스의 list를 메시징 큐로 사용하기
____list의 EX 기능
____list의 블로킹 기능
____list를 이용한 원형 큐
__Stream
____레디스의 Stream과 아파치 카프카
____스트림이란?
____데이터의 저장


7장. 레디스 데이터 백업 방법
__레디스에서 데이터를 영구 저장하기
__RDB 방식의 데이터 백업
____특정 조건에 자동으로 RDB 파일 생성
____수동으로 RDB 파일 생성
____복제를 사용할 경우 자동으로 RDB 파일 생성
__AOF 방식의 데이터 백업
____AOF 파일을 재구성하는 방법
____자동 AOF 재구성
____수동 AOF 재구성
____AOF 타임스탬프
____AOF 파일 복원
____AOF 파일의 안전성
__백업을 사용할 때 주의할 점


8장. 복제
__레디스에서의 복제 구조
____복제 구조 구성하기
____패스워드 설정
__복제 메커니즘
____비동기 방식으로 동작하는 복제 연결
____복제 ID
____부분 재동기화
____Secondary 복제 ID
____읽기 전용 모드로 동작하는 복제본 노드
____유효하지 않은 복제본 데이터
____백업을 사용하지 않는 경우에서의 데이터 복제


9장. 센티널
__고가용성 기능의 필요성
__센티널이란?
____센티널 기능
____분산 시스템으로 동작하는 센티널
____센티널 인스턴스 배치 방법
__센티널 인스턴스 실행하기
____센티널 프로세스 실행
____페일오버 테스트
__센티널 운영하기
____패스워드 인증
____복제본 우선순위
____운영 중 센티널 구성 정보 변경
____센티널 초기화
____센티널 노드의 추가/제거
____센티널의 자동 페일오버 과정
____스플릿 브레인 현상


10장. 클러스터
__레디스 클러스터와 확장성
____스케일 업 vs 스케일 아웃
____레디스에서의 확장성
____레디스 클러스터의 기능
__레디스 클러스터 동작 방법
____해시슬롯을 이용한 데이터 샤딩
____해시태그
____자동 재구성
__레디스 클러스터 실행하기
____클러스터 초기화
____클러스터 상태 확인하기
____redis-cli를 이용해 클러스터 접근하기와 리디렉션
____페일오버 테스트
__레디스 클러스터 운영하기
____클러스터 리샤딩
____클러스터 리샤딩-간단 버전
____클러스터 확장-신규 노드 추가
____노드 제거하기
____레디스 클러스터로의 데이터 마이그레이션
____복제본을 이용한 읽기 성능 향상
__레디스 클러스터 동작 방법
____하트비트 패킷
____해시슬롯 구성이 전파되는 방법
____노드 핸드셰이크
____클러스터 라이브 재구성
____리디렉션
____장애 감지와 페일오버
____복제본 선출


11장. 보안
__커넥션 제어
____bind
____패스워드
____Protected mode
__커맨드 제어
____커맨드 이름 변경
____커맨드 실행 환경 제어
____레디스를 이용한 해킹 사례
__ACL
____유저의 생성과 삭제
____유저 상태 제어
____패스워드
____패스워드 저장 방식
____커맨드 권한 제어
____키 접근 제어
____셀렉터
____pub/sub 채널 접근 제어
____유저 초기화
____ACL 규칙 파일로 관리하기
__SSL/TLS
____SSL/TLS란?
____레디스에서 SSL/TLS 사용하기
____SSL/TLS를 사용한 HA 구성


12장. 클라이언트 관리
__클라이언트 핸들링
____클라이언트 버퍼 제한
____클라이언트 이빅션
____Timeout과 TCP Keepalive
__파이프라이닝
__클라이언트 사이드 캐싱


13장. 레디스 운영하기
__레디스 모니터링 구축하기
____프로메테우스와 그라파나를 이용한 레디스 모니터링
____레디스 플러그인을 이용한 그라파나 대시보드
__레디스 버전 업그레이드
____센티널 구성의 레디스 버전 업그레이드
____클러스터 구성의 레디스 버전 업그레이드
__레디스 운영 가이드
____장애 또는 성능 저하를 유발할 수 있는 레디스의 설정 항목
____레디스 운영 및 성능 최적화
____레디스 모니터링
닫기