장바구니 담기 close

장바구니에 상품을 담았습니다.

개발자를 위한 레디스

개발자를 위한 레디스

  • 김가림
  • |
  • 에이콘출판
  • |
  • 2023-11-08 출간
  • |
  • 432페이지
  • |
  • 188 X 235mm
  • |
  • ISBN 9791161757926
판매가

38,000원

즉시할인가

34,200

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
34,200

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평

◈ 이 책에서 다루는 내용 ◈
◆ 마이크로서비스 아키텍처에서 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장에서는 레디스를 잘 운영하기 위해 알아야 할 내용을 소개한다. 레디스를 장애 없이 운영하기 위해서는 레디스가 구축된 서버와 레디스 인스턴스를 실시간으로 모니터링해 운영 환경에 문제가 생기지 않는지 확인하는 과정이 필수적이다. 아울러 프로메테우스와 그라파나를 이용해 레디스 대시보드를 작성하는 방법에 대해 알아볼 것이다.

목차

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


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


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


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


5장. 레디스 캐시로 사용하기
__레디스와 캐시
____캐시란?
____캐시로서의 레디스
____캐싱 전략
__캐시에서의 데이터 흐름
____TTL
____Maxmemory Policy
____Cache stampede 현상
__세션 스토어로의 레디스
____세션이란?
____세션 스토어가 필요한 이유
____캐시와 세션의 차이


6장. 레디스 메시지 브로커로 사용하기
__Message Queue와 Event streams
____레디스를 메시지 브로커로 사용하기
__레디스의 pub/sub
____메시지 publish하기
____메시지 구독하기
____클러스터 구조에서의 pub/sub
____Shared pub/sub
__레디스의 list를 메시징 큐로 사용하기
____list의 EX 기능
____list의 blocking 기능
____list를 이용한 circular queue
__stream
____레디스의 stream과 아파치 카프카
____stream이란?
____데이터의 저장


7장. 레디스 데이터 백업 방법
__레디스에서 데이터를 영구 저장하기
__관계형 데이터베이스 방식의 데이터 백업
____특정 조건에 자동으로 RDB 파일 생성
____수동으로 RDB 파일 생성
____복제를 사용할 경우 자동으로 RDB 파일 생성
__AOF 방식의 데이터 백업
____AOF Rewrite가 동작하는 방법
____특정 조건에 자동으로 AOF rewrite
____수동으로 AOF rewrite
____AOF timestamp
____AOF 파일 복원
____AOF 파일의 안전성
__백업을 사용할 때 주의할 점


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


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


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


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


12장. 클라이언트 핸들링
__클라이언트 연결을 처리하는 방법
____클라이언트 버퍼 제한
____클라이언트 eviction
____클라이언트 연결 관리-Timeout과 TCP Keepalive
__파이프라이닝
__클라이언트 사이드 캐싱


13장. 레디스 운영하기
__레디스 모니터링 구축하기
____프로메테우스와 그라파나를 이용한 레디스 모니터링
____레디스 플러그인을 이용한 그라파나 대시보드
__레디스 버전 업그레이드
____Sentinel 구성의 레디스 버전 업그레이드
____Cluster 구성의 레디스 버전 업그레이드
__장애를 예방할 수 있는 방법
____설치 및 구축
____운영 및 개발
____장애를 유발할 수 있는 기본 설정값 변경


찾아보기

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.