[PART 01 기초]CHAPTER 01 레디스의 시작 _1.1 레디스를 사용하기까지_1.2 레디스의 특징__1.2.1 레디스의 동작 이미지__1.2.2 다른 데이터베이스와 어떻게 다른가__1.2.3 의존성이 적은 레디스__1.2.4 레디스의 활용__1.2.5 속도가 빠르고 기능이 많은 인메모리 데이터 저장소COLUMN 레디스의 탄생부터 현재까지__1.2.6 RDBMS와 비교COLUMN ACID 특성__1.2.7 멤케시디와 비교_1.3 레디스 서버 설정__1.3.1 우분투에서 레디스 설치__1.3.2 소스코드로 설치_1.4 레디스 동작 테스트__1.4.1 redis-server 실행 및 redis-cli로 접속하기COLUMN GUI 클라이언트COLUMN redis-cli에 연결할 수 없을 때의 트러블슈팅__1.4.2 redis-cli 동작__1.4.3 원격 연결로 조작하기_1.5 레디스 문서와 공식 리소스__1.5.1 레디스 자료형(레디스 문서)__1.5.2 레디스 교육__1.5.3 레디스 활용CHAPTER 02 자료형과 기능 _2.1 자료형과 기능 개요__2.1.1 다섯 가지 자료형__2.1.2 보조 자료형과 기능__2.1.3 레디스의 폭 넓은 데이터 모델 표현성__2.1.4 레디스의 자료형과 명령어__2.1.5 레디스 유틸리티 명령어_2.2 String형COLUMN 레디스의 String형은 지금도 512MB가 최대인가__2.2.1 String형 활용: 빠른 세션 캐시__2.2.2 String형 주요 명령어__2.2.3 String형 숫자값__2.2.4 String형 명령어COLUMN 그 외 String형에서 사용 가능한 명령어COLUMN String형에서 폐지 예정/폐지 가능성이 있는 명령어__2.2.5 String형 실행 예시__2.2.6 SET 명령어와 옵션_2.3 List형__2.3.1 List형 활용: 인기 콘텐츠 표시__2.3.2 List형 주요 명령어COLUMN 그 외 List형에서 사용 가능한 명령어COLUMN List형에서 폐지 예정인 명령어__2.3.3 List형 실행 예시_2.4 Hash형__2.4.1 Hash형 활용: 객체 스토리지__2.4.2 Hash형 주요 명령어COLUMN 그 외 Hash형에서 사용 가능한 명령어COLUMN Hash형에서 폐지 예정인 명령어__2.4.3 Hash형 실행 예시__2.4.4 성능을 발휘하기 위한 주의사항_2.5 Set형__2.5.1 Set형 활용: 고유 사용자 수 조사__2.5.2 Set형 주요 명령어COLUMN 그 외 Set형에서 사용 가능한 명령어__2.5.3 Set형 실행 예시_2.6 Sorted Set형__2.6.1 Sorted Set형 활용: 실시간 랭킹__2.6.2 Sorted Set형 주요 명령어COLUMN 그 외 Sorted Set형에서 사용 가능한 명령어COLUMN Sorted Set형에서 폐지 예정인 명령어__2.6.3 Sorted Set형 실행 예시_2.7 대표 기능과 관련 명령어__2.7.1 비트맵(비트 배열)__2.7.2 지리적 공간 인덱스COLUMN GeohashCOLUMN 지리적 공간 인덱스에서 폐지 예정인 명령어__2.7.3 Pub/Sub 기능__2.7.4 HyperLogLogCOLUMN 내부 인코딩__2.7.5 레디스 스트림COLUMN 레디스 스트림과 유사한 자료형 및 기능 비교__2.7.6 자료형 관계없이 사용 가능한 명령어COLUMN 시간 복잡도COLUMN 그 외 명령어CHAPTER 03 고급 기능 _3.1 파이프라인__3.1.1 파이프라인 실행 예시_3.2 루아__3.2.1 이페머럴 스크립트__3.2.2 레디스 함수__3.2.3 레디스의 루아 프로그래밍_3.3 트랜잭션_3.4 모듈__3.4.1 모듈로 구현할 수 있는 것__3.4.2 모듈을 실제로 사용하는 경우_3.5 키 공간 알림_3.6 클라이언트 측 캐싱CHAPTER 04 레디스를 활용한 애플리케이션 작성 _4.1 다양한 언어를 지원하는 레디스__4.1.1 프로그래밍 언어와 레디스 조합COLUMN Redis OM 라이브러리COLUMN 레디스와 TLS 기능_4.2 PHP로 레디스 작업__4.2.1 PhpRedis로 작업__4.2.2 세션 정보 캐시 관리COLUMN 샘플 애플리케이션의 주의점__4.2.3 뉴스 게시 기능_4.3 루비로 레디스 작업__4.3.1 redis-rb로 작업__4.3.2 투표 관리_4.4 파이썬으로 레디스 작업__4.4.1 aioredis로 작업__4.4.2 실시간 채팅COLUMN 적절한 자료형 선택[PART 02 실전]CHAPTER 05 레디스 운용 관리 _5.1 데이터 영속성__5.1.1 스냅숏COLUMN CRC__5.1.2 AOF__5.1.3 스냅숏과 AOF 비교__5.1.4 데이터 삭제 패턴COLUMN RDB 파일 형식_5.2 캐시 서버로서 레디스 아키텍처__5.2.1 읽기 관점 아키텍처__5.2.2 쓰기 관점 아키텍처__5.2.3 아키텍처 안티 패턴__5.2.4 데이터 저장소로서의 레디스 아키텍처_5.3 모범 사례__5.3.1 TTL 설정__5.3.2 제거 정책 설정__5.3.3 백업__5.3.4 커넥션 풀링__5.3.5 재시도 처리__5.3.6 기타 모범 사례_5.4 캐시 노드 크기 조정__5.4.1 크기 조정 기준_5.5 설정 파일 redis.conf_5.6 보안__5.6.1 보안 설정__5.6.2 ACL기능_5.7 벤치마크COLUMN 레디스와 멤케시디 벤치마크_5.8 멀티 스레드 처리_5.9 DEBUG 명령어COLUMN 데이터베이스CHAPTER 06 트러블슈팅 397_6.1 INFO 명령어로 서버 정보 읽기COLUMN RSS_6.2 지연 시간 조사__6.2.1 슬로우 로그__6.2.2 redis-cli 옵션__6.2.3 지연 시간 모니터링COLUMN 소프트웨어 워치독_6.3 메모리 문제CHAPTER 07 레플리케이션 _7.1 레플리케이션 기능__7.1.1 비동기 처리를 통한 구현__7.1.2 레플리케이션 사용할 때 레디스를 연결하는 방법__7.1.3 기본적으로 읽기 전용인 레플리카__7.1.4 마이그레이션으로 활용하기__7.1.5 레플리케이션 주의사항COLUMN 마스터/슬레이브에서 마스터/레플리카로_7.2 레플리케이션을 시작할 때의 메커니즘__7.2.1 전체 동기화__7.2.2 부분 동기화COLUMN 레플리케이션 연결이 끊겼을 때의 동작 개선_7.3 레플리케이션 동작 중 메커니즘__7.3.1 마스터와 레플리카 간의 연결 상태 모니터링_7.4 페일오버COLUMN 레플리케이션 시 이페머럴 스크립트_7.5 레플리케이션 도입 방법COLUMN Systemd로 실행하는 경우COLUMN 페일오버 동작COLUMN 레디스 센티널CHAPTER 08 레디스 클러스터 _8.1 레디스 클러스터 기능 개요__8.1.1 레디스 클러스터의 장점__8.1.2 레디스 클러스터가 사용하는 두 개의 TCP 포트__8.1.3 동작 메커니즘COLUMN 접근 노드에 편향이 발생하는 경우_8.2 레디스 클러스터 장애 탐지__8.2.1 장애 탐지 메커니즘__8.2.2 레플리카 선출_8.3 레디스 클러스터 키워드__8.3.1 슬롯__8.3.2 해시태그__8.3.3 클러스터 버스__8.3.4 파티셔닝_8.4 레디스 클러스터 지원 클라이언트__8.4.1 MOVED 리다이렉트와 ASK 리다이렉트__8.4.2 레디스 클러스터 지원 클라이언트 동작__8.4.3 레디스 클러스터 지원 클라이언트 사용 방법_8.5 레디스 클러스터 관련 명령어_8.6 레디스 클러스터 설치 방법__8.6.1 모든 마스터 혹은 모든 레플리카에 특정 작업 실행COLUMN 레디스 클러스터 페일오버 동작COLUMN 로그 양식CHAPTER 09 메모리 관리 _9.1 메모리 관리 아키텍처__9.1.1 INFO Memory 출력 결과 해석__9.1.2 클라이언트 출력 버퍼_9.2 키 만료__9.2.1 만료 방법__9.2.2 삭제 정책_9.3 메모리를 효율적으로 사용하기 위한 기타 방법__9.3.1 동적 리해싱__9.3.2 동적 단편화 제거COLUMN zmallocCHAPTER 10 클라우드에서 사용하는 레디스 _10.1 OSS와 레디스의 차이__10.1.1 고유 기능__10.1.2 제한COLUMN Amazon MemoryDB for Redis_10.2 클라우드에서 사용하는 방법__10.2.1 엔드포인트_10.3 클라우드를 활용한 트러블슈팅__10.3.1 최소한으로 모니터링을 해야 하는 메트릭__10.3.2 주의해야 하는 메트릭__10.3.3 유지보수 창 주의사항__10.3.4 이벤트 확인[PART 03 고급]CHAPTER 11 레디스의 구조 _11.1 레디스 관련 기술__11.1.1 RESPCOLUMN RESP 형식이 아닌 쿼리 요청 처리__11.1.2 SDS__11.1.3 ae__11.1.4 RAX__11.1.5 CoW__11.1.6 Raft__11.1.7 HyperLogLog_11.2 소스코드를 통해 살펴 본 레디스__11.2.1 여러 파일 개요__11.2.2 해시 테이블__11.2.3 여러 명령어의 정의__11.2.4 클라이언트 정의__11.2.5 서버 정의__11.2.6 내부 인코딩COLUMN zipmapAPPENDIX A. 레디스 계속해서 활용하기_A.1 멤케시디와의 기능 및 동작 비교__A.1.1 간단한 형태의 데이터 저장__A.1.2 간단하고 불필요한 기능 없는 안정적인 동작__A.1.3 슬랩 클래스 단위로 LRU를 통한 데이터 관리__A.1.4 멀티 스레드를 통한 이벤트 기반 처리__A.1.5 상호 독립적인 노드__A.1.6 명령어 특징__A.1.7 네트워크 및 통신 관련__A.1.8 고성능 인메모리 KVS_A.2 앞으로의 레디스__A.2.1 Hash형의 TTL 강화__A.2.2 더욱 신뢰할 수 있는 키 공간 알림__A.2.3 키 어노테이션__A.2.4 레디스 클러스터 개선