레디스는 인메모리에서 빠르게 동작하고, 자료형과 기능을 이용하여 데이터를 유연하게 표현할 수 있어 최근 웹 시스템 등에서 널리 사용되고 있다. 『실전 레디스』는 레디스의 기초부터 실무 활용까지 포괄적으로 다루는 레디스 핵심 가이드이다. 최신 버전의 레디스 기능뿐만 아니라 데이터 저장, 클러스터링, 모니터링과 같은 실제 레디스를 운영하면서 꼭 필요한 내용까지 여러 사례와 함께 설명한다. 특히 실전에서 레디스를 활용하기 위한 저자의 노하우를 바탕으로 COLUMN 구성을 통해 레디스의 명령어에 대한 추가 설명과 레디스의 기능 비교 및 함수 설명까지 배울 수 있다. 마지막으로 레디스의 지속적인 활용을 위해 멤케시디와 비교하면서 레디스의 전망을 소개하는 부록까지 제공한다.
목차
[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 Geohash COLUMN 지리적 공간 인덱스에서 폐지 예정인 명령어 __2.7.3 Pub/Sub 기능 __2.7.4 HyperLogLog COLUMN 내부 인코딩 __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 zmalloc
CHAPTER 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 RESP COLUMN 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 zipmap
APPENDIX 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 레디스 클러스터 개선
저자소개
하야시 쇼고 , 서대원 , 정경석
출판사리뷰
『실전 레디스』는 레디스의 기본 개념부터 애플리케이션 개발 예시, 안정적인 운용을 위한 메커니즘 지식까지 다룹니다. 기초, 실전, 고급 편으로 구성되어 있으며, [기초] 편에서는 레디스의 기초, 자료형과 명령어 실행 예시, 그리고 레디스를 활용한 애플리케이션 예시를 통해 레디스의 기본을 배워볼 수 있습니다. [실전] 편에서는 레디스를 운용하는 데 필요한 점과 트러블슈팅, 레플리케이션, 메모리 관리뿐만 아니라 클라우드 환경에서 사용하는 레디스에 대해 자세히 다룹니다. 마지막으로 [고급] 편에서는 레디스와 관련된 기술을 살펴보며, 부록에서 멤케시디와의 비교를 통해 레디스의 활용과 전망을 알아봅니다.
이러한 단계별 구성은 마치 백과사전처럼 레디스의 모든 측면을 익힐 수 있습니다. 이 책을 통해 레디스의 매력을 경험해보고, 실전에서 레디스를 효과적으로 활용하는 데 필요한 지식을 배워보세요.
고액결제의 경우 안전을 위해 카드사에서 확인전화를 드릴 수도 있습니다. 확인과정에서 도난 카드의 사용이나 타인 명의의 주문등
정상적인 주문이 아니라고 판단될 경우 임의로 주문을 보류 또는 취소할 수 있습니다.
무통장 입금은 상품 구매 대금은 PC뱅킹, 인터넷뱅킹, 텔레뱅킹 혹은 가까운 은행에서 직접 입금하시면 됩니다.
주문시 입력한 입금자명과 실제입금자의 성명이 반드시 일치하여야 하며, 7일 이내로 입금을 하셔야 하며 입금되지
않은 주문은 자동취소 됩니다.
배송정보
배송 방법 : 택배
배송 지역 : 전국지역
배송 비용 : 무료
배송 기간 : 3일 ~ 7일
배송 안내 : - 산간벽지나 도서지방은 별도의 추가금액을 지불하셔야 하는 경우가 있습니다.
고객님께서 주문하신 상품은 입금 확인후 배송해 드립니다. 다만, 상품종류에 따라서 상품의 배송이 다소 지연될 수 있습니다.
교환 및 반품정보
교환 및 반품 주소 - [07271] 서울특별시 영등포구 양산로 57-5 (양평동3가) 양평동 이노플렉스 B101~103
교환 및 반품이 가능한 경우 - 계약내용에 관한 서면을 받은 날부터 7일. 단, 그 서면을 받은 때보다 재화등의 공급이 늦게 이루어진 경우에는 재화등을 공급받거나 재화등의 공급이 시작된 날부터 7일 이내
- 공급받으신 상품 및 용역의 내용이 표시.광고 내용과 다르거나 계약내용과 다르게 이행된 때에는 당해 재화 등을 공급받은 날 부터 3월이내, 그사실을 알게 된 날 또는 알 수 있었던 날부터 30일이내
교환 및 반품이 불가능한 경우 - 이용자에게 책임 있는 사유로 재화 등이 멸실 또는 훼손된 경우(다만, 재화 등의 내용을 확인하기 위하여 포장 등을 훼손한 경우에는 청약철회를 할 수 있습니다)
- 이용자의 사용 또는 일부 소비에 의하여 재화 등의 가치가 현저히 감소한 경우
- 시간의 경과에 의하여 재판매가 곤란할 정도로 재화등의 가치가 현저히 감소한 경우
- 복제가 가능한 재화등의 포장을 훼손한 경우
- 개별 주문 생산되는 재화 등 청약철회시 판매자에게 회복할 수 없는 피해가 예상되어 소비자의 사전 동의를 얻은 경우
- 디지털 콘텐츠의 제공이 개시된 경우, (다만, 가분적 용역 또는 가분적 디지털콘텐츠로 구성된 계약의 경우 제공이 개시되지 아니한 부분은 청약철회를 할 수 있습니다.)
※ 고객님의 마음이 바뀌어 교환, 반품을 하실 경우 상품반송 비용은 고객님께서 부담하셔야 합니다.
(색상 교환, 사이즈 교환 등 포함)