본문 바로가기

리디 접속이 원활하지 않습니다.
강제 새로 고침(Ctrl + F5)이나 브라우저 캐시 삭제를 진행해주세요.
계속해서 문제가 발생한다면 리디 접속 테스트를 통해 원인을 파악하고 대응 방법을 안내드리겠습니다.
테스트 페이지로 이동하기

실전 레디스 상세페이지

컴퓨터/IT 개발/프로그래밍

실전 레디스

기초, 실전, 고급 단계별로 배우는 레디스 핵심 가이드
소장종이책 정가45,000
전자책 정가20%36,000
판매가36,000
실전 레디스 표지 이미지

실전 레디스작품 소개

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


레디스는 인메모리에서 빠르게 동작하고, 자료형과 기능을 이용하여 데이터를 유연하게 표현할 수 있어 최근 웹 시스템 등에서 널리 사용되고 있습니다.
『실전 레디스』는 레디스의 기초부터 실무 활용까지 포괄적으로 다루는 레디스 핵심 가이드입니다. 최신 버전의 레디스 기능뿐만 아니라 데이터 저장, 클러스터링, 모니터링과 같은 실제 레디스를 운영하면서 꼭 필요한 내용까지 여러 사례와 함께 설명합니다. 특히 실전에서 레디스를 활용하기 위한 저자의 노하우를 바탕으로 COLUMN 구성을 통해 레디스의 명령어에 대한 추가 설명과 레디스의 기능 비교 및 함수 설명까지 배울 수 있습니다. 마지막으로 레디스의 지속적인 활용을 위해 멤케시디와 비교하면서 레디스의 전망을 소개하는 부록까지 제공합니다.


출판사 서평

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


추천사

레디스의 모든 명령어에 대한 설명과 예제를 제공하여 레디스를 처음 접하는 사람들도 쉽게 배워볼 수
있습니다. 또한 트랜잭션, 모듈, 메모리 관리, 레플리케이션, 클러스터링, 소스코드 분석과 같이 다양
한 주제를 다루고 있어 레디스를 깊이 이해하고자 하는 사람들에게도 유용합니다. 특히나 트러블슈팅
을 위한 노하우나 레디스 구조 이해와 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로 근무 중이다.

목차

[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 레디스 클러스터 개선


리뷰

구매자 별점

0.0

점수비율
  • 5
  • 4
  • 3
  • 2
  • 1

0명이 평가함

리뷰 작성 영역

이 책을 평가해주세요!

내가 남긴 별점 0.0

별로예요

그저 그래요

보통이에요

좋아요

최고예요

별점 취소

구매자 표시 기준은 무엇인가요?

'구매자' 표시는 리디에서 유료도서 결제 후 다운로드 하시거나 리디셀렉트 도서를 다운로드하신 경우에만 표시됩니다.

무료 도서 (프로모션 등으로 무료로 전환된 도서 포함)
'구매자'로 표시되지 않습니다.
시리즈 도서 내 무료 도서
'구매자’로 표시되지 않습니다. 하지만 같은 시리즈의 유료 도서를 결제한 뒤 리뷰를 수정하거나 재등록하면 '구매자'로 표시됩니다.
영구 삭제
도서를 영구 삭제해도 ‘구매자’ 표시는 남아있습니다.
결제 취소
‘구매자’ 표시가 자동으로 사라집니다.

이 책과 함께 구매한 책


이 책과 함께 둘러본 책



본문 끝 최상단으로 돌아가기

spinner
모바일 버전