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