본문으로 바로가기
전자책
평면표지(2D 앞표지)

실전 레디스

기초, 실전, 고급 단계별로 배우는 레디스 핵심 가이드


  • ISBN-13
    979-11-6921-814-6 (95000)
  • 출판사 / 임프린트
    한빛미디어(주) / 한빛미디어(주)
  • 정가
    36,000 원 확정정가
  • 발행일
    2024-05-20
  • 출간상태
    출간
  • 저자
    하야시 쇼고
  • 번역
    서대원
  • 메인주제어
    NoSQL 데이터베이스
  • 추가주제어
    데이터베이스디자인 및 이론 , 데이터베이스
  • 키워드
    #Redis #레디스 #데이터베이스 #DB #Hash #Ruby #php #Lua #클라우드 #OSS #Memcached #NoSQL #멤케시디 #자료형 #트러블슈팅 #클러스터 #레플리케이션 #루아 #NoSQL 데이터베이스 #데이터베이스디자인 및 이론
  • 도서유형
    전자책, PDF
  • 대상연령
    모든 연령, 성인 일반 단행본

책소개

최적의 운영을 위한 레디스 실전 노하우
*레디스 7.0 최신 버전 반영 


레디스는 인메모리에서 빠르게 동작하고, 자료형과 기능을 이용하여 데이터를 유연하게 표현할 수 있어 최근 웹 시스템 등에서 널리 사용되고 있습니다.
『실전 레디스』는 레디스의 기초부터 실무 활용까지 포괄적으로 다루는 레디스 핵심 가이드입니다. 최신 버전의 레디스 기능뿐만 아니라 데이터 저장, 클러스터링, 모니터링과 같은 실제 레디스를 운영하면서 꼭 필요한 내용까지 여러 사례와 함께 설명합니다. 특히 실전에서 레디스를 활용하기 위한 저자의 노하우를 바탕으로 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 레디스 클러스터 개선

본문인용

-

서평

『실전 레디스』는 레디스의 기본 개념부터 애플리케이션 개발 예시, 안정적인 운용을 위한 메커니즘 지식까지 다룹니다. 기초, 실전, 고급 편으로 구성되어 있으며, [기초] 편에서는 레디스의 기초, 자료형과 명령어 실행 예시, 그리고 레디스를 활용한 애플리케이션 예시를 통해 레디스의 기본을 배워볼 수 있습니다. [실전] 편에서는 레디스를 운용하는 데 필요한 점과 트러블슈팅, 레플리케이션, 메모리 관리뿐만 아니라 클라우드 환경에서 사용하는 레디스에 대해 자세히 다룹니다. 마지막으로 [고급] 편에서는 레디스와 관련된 기술을 살펴보며, 부록에서 멤케시디와의 비교를 통해 레디스의 활용과 전망을 알아봅니다. 
이러한 단계별 구성은 마치 백과사전처럼 레디스의 모든 측면을 익힐 수 있습니다. 이 책을 통해 레디스의 매력을 경험해보고, 실전에서 레디스를 효과적으로 활용하는 데 필요한 지식을 배워보세요. 


추천사

레디스의 모든 명령어에 대한 설명과 예제를 제공하여 레디스를 처음 접하는 사람들도 쉽게 배워볼 수
있습니다. 또한 트랜잭션, 모듈, 메모리 관리, 레플리케이션, 클러스터링, 소스코드 분석과 같이 다양
한 주제를 다루고 있어 레디스를 깊이 이해하고자 하는 사람들에게도 유용합니다. 특히나 트러블슈팅
을 위한 노하우나 레디스 구조 이해와 RESP, SDS, ae, RAX 개념 설명, 그리고 Copy On Write, Raft,
HyperLogLog 이해를 통해 레디스를 더 효율적으로 활용하는 방법을 제시합니다. 이는 레디스를 사용하
는 개발자들에게 많은 도움이 될 것입니다.


조현석, 소프트웨어 엔지니어

게임 서버 개발에서 많이 사용되는 기술 중 하나로 레디스를 꼽습니다. 그러나 레디스의 대중성에 비해
학습을 위한 책이 부족하다는 점이 안타까웠는데 마침 이 책이 출간되어 기쁘게 생각합니다. 이 책은 레
디스 기초부터 최신 버전의 새로운 기능까지 자세히 설명하고 있습니다. 이미 레디스를 알고 사용 중인
분들도 이 책을 꼭 읽어보시기 바랍니다. 아마 몰랐던 기능을 대해서도 알게 될 것입니다. 또한 레디스의
여러 측면을 다루고 있어서 참고용으로도 유용합니다.

최흥배, 서버 엔지니어

만약 사용 중인 레디스가 다운된다면 어떻게 해야 할까요? 현업에서 운영 중인 레디스의 클러스터링, 샤
딩, 메모리 관리, 페일오버 등 실무에 꼭 필요한 내용을 꼼꼼하게 소개하고 있습니다. 레디스의 히스토리
와 아키텍처를 이해하고 고급 레디스 운영자가 되고자 하는 엔지니어분들에게 추천드립니다.

조현규, SRE 엔지니어

저자소개

저자 : 하야시 쇼고
2017년에 AWS에 합류한 Amazon EMR 개발 팀의 시스템 개발 엔지니어입니다. 5년간 AWS에서 기술 지원을 담당했으며, 레디스/멤케시디와 로드 밸런서를 비롯한 다양한 분야에서 회사 내 전문가로 활동했습니다. 또한 회사 내 개발 팀과 협력하여 문제 해결 등의 업무를 수행했습니다. 현재는 Amazon EMR의 릴리스 주변 컴포넌트 개발을 담당하고 있습니다.
번역 : 서대원
국내에서 금융권 회사의 자산 운용 솔루션을 개발하며 백엔드 및 SAP 개발을 담당하였습니다. 이후 디지털 마케팅 솔루션 프로젝트의 프런트엔드 개발자로 근무하기도 하였고, 현재는 일본 회사에 입사하여 엔지니어로 활동하고 있습니다.
감수 : 정경석
1999년 말부터 웹 서비스 개발을 시작으로 인터넷 뱅킹, 한국은행 대량 이체 시스템, 모네타 교통 칩 카드 발급 시스템, 나라사랑카드 선불 과금 시스템, 시티은행 모바일 뱅킹 시스템, 아프리카TV 검색시스템 등을 개발했다. 서버 사이드 백엔드 플랫폼 개발자로서 하루 수천만에서 수억 건에 이르는 요청을 처리하는 다양한 대용량 서비스를 구축 및 운영해 왔다. 『이것이 레디스다』(한빛미디어, 2013) 와 『자바 네트워크 소녀 네티』(한빛미디어, 2015)를 집필했으며 2024년 현재 SK C&C에서 Application architect로 근무 중이다.
상단으로 이동