개발자를 위한 레디스 - 에이콘 오픈소스 프로그래밍 시리즈

개발자를 위한 레디스 - 에이콘 오픈소스 프로그래밍 시리즈

$38.00
Description
개발자가 인메모리 데이터베이스인 레디스를 잘 활용할 수 있도록 초점을 맞춘 포괄적인 안내서다. 레디스를 처음 배우는 독자나 NoSQL 데이터베이스의 개념을 쌓고자 하는 개발자를 위해, 레디스의 기초부터 활용 방법까지 소개하며 입문자도 이해할 수 있는 내용을 제공한다. 레디스를 어떤 상황에서 효율적으로 활용해야 할지 고민하는 개발자에게는 실제 적용 시나리오와 최적의 사용법에 대한 가이드를 제공해 응용 가능한 전략을 제시한다. 레디스의 장애를 최소화하고 성능을 향상시키기 위한 방법을 다루며, 이를 통해 이미 사용 중인 개발자도 레디스 환경을 안정화하고 최적화할 수 있다.
레디스를 캐시 및 세션 스토어로 활용하고, 메세지 브로커로 사용하는 방법에 대한 실전 예제와 구체적인 구현 방법을 제시한다. 또한 레디스 데이터의 영구 저장 방법과 고가용성 설정을 위한 복제 구조, 센티널 및 클라이언트 형태로 사용하는 방법을 소개한다. 이를 통해 안정적이고 확장 가능한 레디스 환경을 구축할 수 있을 것이다. 뿐만 아니라 클라이언트 핸들링과 보안에 대한 내용을 다루며, 레디스를 실제 운영 환경에서 안전하게 관리하고 활용하는 방법을 설명한다. 레디스의 모니터링을 구성하는 방법과 다운타임을 최소화하면서 버전을 업그레이드하는 방법을 다뤄 레디스 시스템의 안정성과 성능을 지속적으로 향상시킬 수 있도록 돕는다.

책의 내용은 레디스의 최신 버전인 7버전을 기준으로 작성됐으며, 국내에서는 아직 잘 알려지지 않은 신규 기능들인 stream, sharded pub/sub, ACL 그리고 클라이언트 사이드 캐싱 등에 대해 상세히 설명한다. 이러한 기능들은 레디스의 활용 범위를 더욱 넓히며, 독자들에게 레디스의 깊은 이해와 효율적인 활용에 대한 풍부한 인사이트를 제공할 것으로 기대한다.
저자

김가림

저자:김가림
RDBMS부터NoSQL까지다양한데이터베이스시스템을관리하고운영하는엔지니어.NHN에서DBA로경력을쌓았으며,NHNCLOUD의관리형RedisDBaaS인EasyCache상품의초기개발단계부터참여해이중화및내부가용성설계에대한고민을함께했다.EasyCache의내부파라미터최적화와신규기능제안등으로상품의개선에기여해왔다.현재는우아한형제들에서데이터베이스엔지니어로근무하고있다.데이터베이스와관련된다양한측면에서의경험과지식을바탕으로이책을통해독자들에게유용한정보를전달하고자한다.

목차


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

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

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

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

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

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

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

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

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

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

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

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

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

찾아보기

출판사 서평

이책에서다루는내용

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

저자의말

최근애플리케이션개발의필수구성요소로자리잡은레디스의중요성은나날이커져가고있습니다.많은개발자가다양한서비스에서레디스의높은성능을활용해효율적인애플리케이션을구축하고있으며,안정적인데이터관리와빠른접근성사이의균형을이뤄내는레디스는많은애플리케이션에서점점더중요한역할을하고있습니다.인기와함께레디스에대한깊은이해와활용능력역시점점더중요한역량으로인식되고있습니다.레디스는다른데이터저장소에비해릴리스속도가비교적빠르고각릴리스마다유용한신규기능을도입하고있습니다.레디스를더효율적으로,더광범위하게활용할수있도록하는기능업데이트는계속되고있지만국내에서는레디스에대한최신정보를제공하는자료가상대적으로부족한상황입니다.이에이책을통해레디스의최신기능과실용적인활용방안을국내개발자들에게소개하고자했습니다.

레디스를운영하며몇차례레디스로인한서비스장애를겪은적이있습니다.레디스는많은서비스에서핵심요소로활용되기때문에장애상황이발생하면그영향이상당히크게느껴집니다.이런상황은레디스의올바른운영과최적화의중요성을깨닫게해줬고,레디스관련서비스장애를예방하거나최소화하는방법을공유할필요성을느끼게됐습니다.레디스의기본구조부터고급기능그리고실제운영활용방법에이르기까지폭넓은내용을소개하는책입니다.다양한활용사례와함께소개된애플리케이션성능최적화방법은레디스를이미활용중인개발자뿐만아니라레디스도입을고려하는개발자들에게도큰도움이될것으로기대합니다.운영중발생할수있는일반적인문제점과실무에서적용가능한해결전략을제시하며효율적인운영방법을소개함으로써데이터베이스관리자,시스템엔지니어그리고높은성능과신속한데이터처리가필요한다양한IT분야의전문가에게도도움이되길바랍니다.이책을쓰면서저도레디스에대해많이배웠습니다.레디스의새로운기능을알게되는동시에내부동작방식을좀더이해할수있었으며여러장애포인트에대해서도깊게고민할수있는계기가됐습니다.