HOME > Detail View

Detail View

Redis 핵심정리 : 프로젝트 성능을 최적화하는 레디스의 모든 필수 기능

Redis 핵심정리 : 프로젝트 성능을 최적화하는 레디스의 모든 필수 기능

Material type
단행본
Personal Author
Da Silva, Maxwell Dayvson Tavares, Hugo Lopes, 저 김용환, 역
Title Statement
Redis 핵심정리 : 프로젝트 성능을 최적화하는 레디스의 모든 필수 기능 / 맥스웰 데이브슨 다 실바, 휴고 로페스 타바레스 지음 ; 김용환 옮김
Publication, Distribution, etc
서울 :   에이콘,   2016  
Physical Medium
266 p. : 삽화 ; 24 cm
Series Statement
acorn+PACKT technical book
Varied Title
Redis essentials : harness the power of Redis to integrate and manage your projects efficiently
ISBN
9788960778962 9788960772106 (Set)
General Note
색인수록  
Subject Added Entry-Topical Term
Data warehousing Database design Database management Management information systems Open source software
000 00000cam c2200205 c 4500
001 000045944193
005 20180608135753
007 ta
008 180608s2016 ulka 001c kor
020 ▼a 9788960778962 ▼g 94000
020 1 ▼a 9788960772106 (Set)
035 ▼a (KERIS)BIB000014199960
040 ▼a 222003 ▼c 222003 ▼d 211009
041 1 ▼a kor ▼h eng
082 0 4 ▼a 658.40380285574 ▼2 23
085 ▼a 658.40380285 ▼2 DDCK
090 ▼a 658.40380285 ▼b 2016
100 1 ▼a Da Silva, Maxwell Dayvson
245 1 0 ▼a Redis 핵심정리 : ▼b 프로젝트 성능을 최적화하는 레디스의 모든 필수 기능 / ▼d 맥스웰 데이브슨 다 실바, ▼e 휴고 로페스 타바레스 지음 ; ▼e 김용환 옮김
246 1 9 ▼a Redis essentials : ▼b harness the power of Redis to integrate and manage your projects efficiently
260 ▼a 서울 : ▼b 에이콘, ▼c 2016
300 ▼a 266 p. : ▼b 삽화 ; ▼c 24 cm
440 0 0 ▼a acorn+PACKT technical book
500 ▼a 색인수록
650 0 ▼a Data warehousing
650 0 ▼a Database design
650 0 ▼a Database management
650 0 ▼a Management information systems
650 0 ▼a Open source software
700 1 ▼a Tavares, Hugo Lopes, ▼e
700 1 ▼a 김용환, ▼e
900 1 0 ▼a 다 실바, 맥스웰 데이브슨, ▼e
900 1 0 ▼a 타바레스, 휴고 로페스, ▼e
945 ▼a KLPA

Holdings Information

No. Location Call Number Accession No. Availability Due Date Make a Reservation Service
No. 1 Location Science & Engineering Library/Sci-Info(Stacks1)/ Call Number 658.40380285 2016 Accession No. 121244807 Availability Available Due Date Make a Reservation Service B M

Contents information

Book Introduction

acorn+PACKT 시리즈. 레디스 3를 기준으로 설명하고 있고, 노드(Node.js)를 이용해 비트맵(Bitmap)과 하이퍼로그로그(HyperLogLog)를 포함한 레디스의 모든 타입을 다룬다. 또한 AOF와 RDB를 상세히 설명하고, PHP, 파이썬(Python), 루비(Ruby) 언어로 개발된 클라이언트를 통한 레디스 사용 방법을 소개한다.

특히 레디스를 수평으로 확장할 수 있는 트웸프록시(Twemproxy), 레디스 센티널(Redis Sentinel), 레디스 클러스터(Redis Cluster)의 장단점을 객관적으로 살펴보고, 루아(Lua)를 이용해 레디스 커맨드를 설명하며, 보안을 높이는 방법을 자세히 알아본다. 레디스를 실무에 적용하고 확장하고자 하는 이들에게 훌륭한 가이드가 될 것이다.

레디스는 인메모리(In-memory) 고성능 키-값 데이터 저장소로서, 강력한 성능을 보여준다. 다양한 타입을 제공할 뿐아니라, 캐시 크기에 대한 제한이 상대적으로 높지 않으면서도 가볍고 이식성이 높은 오픈소스 솔루션이다. 이 책은 레디스 3를 기준으로 설명하고 있고, 노드(Node.js)를 이용해 비트맵(Bitmap)과 하이퍼로그로그(HyperLogLog)를 포함한 레디스의 모든 타입을 다룬다. 또한 AOF와 RDB를 상세히 설명하고, PHP, 파이썬(Python), 루비(Ruby) 언어로 개발된 클라이언트를 통한 레디스 사용 방법을 소개한다. 특히 레디스를 수평으로 확장할 수 있는 트웸프록시(Twemproxy), 레디스 센티널(Redis Sentinel), 레디스 클러스터(Redis Cluster)의 장단점을 객관적으로 살펴보고, 루아(Lua)를 이용해 레디스 커맨드를 설명하며, 보안을 높이는 방법을 자세히 알아본다. 레디스를 실무에 적용하고 확장하고자 하는 이들에게 훌륭한 가이드가 될 것이다.

★ 이 책에서 다루는 내용 ★

■ 비트맵(Bitmap)과 하이퍼로그로그(HyperLogLog)를 사용한 분석 애플리케이션 설계
■ 트웸프록시(Twemproxy), 레디스 센티널(Redis Sentinel), 레디스 클러스터(Redis Cluster)를 통한 확장성 향상 방법
■ 노드(Node.js)와 레디스를 이용한 시계열 라이브러리 구현
■ 레디스에 루아(Lua)를 확장한 새로운 레디스 커맨드 생성
■ 데이터를 보호할 수 있는 보안 기술(SSL 암호화, 방화벽 규칙, 기초 인증)
■ 디스크에 데이터 저장하는 방법 및 AOF와 RDB의 장단점
■ 노드, PHP, 파이썬(Python), 루비(Ruby) 언어로 된 레디스 클라이언트의 사용 방법
■ 솔루션을 설계할 때, 일반적으로 발생하는 실수 방지

★ 이 책의 대상 독자 ★

이 책은 레디스를 이전에 경험했든 하지 않았든 레디스에 대해 배우고자 하는 사용자를 대상으로 한다. 애플리케이션에 실제로 적용한 예제를 사용함으로써, 수년 동안 레디스를 사용해온 회사들이 해결한 문제들을 보여준다.
또한, 레디스의 기능을 이해할 수 있도록 기초 정보를 제공함으로써, 실무에서 사용 중인 레디스를 확대하고 확장할 수 있는 방법을 가르쳐준다.

★ 이 책의 구성 ★

1장, '시작하기(기초 단계)'에서는 레디스 설치 방법과 redis-cli 사용 방법, 레디스의 기본 커맨드라인 인터페이스를 설명한다. 또한 노드 설치 방법을 살펴보고, 자바스크립트 문법을 빠르게 훑어본다. 문자열(String)과 리스트(List), 해시(Hash) 데이터 타입을 rediscli와 노드(Node.js) 예제와 함께 상세히 다룬다.
2장, '고급 데이터 타입(검은 띠 따기)'에서는 1장에 이어 셋(Set), 정렬된 셋(Sorted Set), 비트맵(Bitmap), 하이퍼로그로그(HyperLogLog) 데이터 타입을 소개한다. 2장의 모든 예제는 redis-cli와 노드로 구현된다.
3장, '시계열(관찰 집합)'에서는 노드의 시계열 라이브러리를 생성하기 위해 1장과 2장에서 소개한 데이터 타입에 대한 모든 지식을 사용한다. 각 예제는 차례대로 시계열 라이브러리를 구현한다. 처음에는 문자열 데이터 타입을 사용해 시계열 라이브러리를 구현하고, 다음에는 해시 데이터 타입을 사용해 시계열 라이브러리를 구현하며 최적화한다. 특별히 정렬된 셋과 하이퍼로그로그 데이터 타입을 사용해 각각 문자열과 해시 구현을 추가로 알아본다.
4장, '커맨드(괴물들이 사는 나라)'에서는 Pub/Sub와 트랜잭션(transaction), 파이프라인(pipeline)을 소개한다. 또한 레디스를 확장할 수 있는 스크립트 기반의 루아(Lua) 언어를 소개한다. 루아 언어의 문법을 설명하고 이전 장들에서 다루지 않은 관리 커맨드와 데이터 타입 커맨드를 포함한 온갖 종류의 레디스 커맨드를 다룬다. 또한, 메모리 또는 성능 관점에서 여러 데이터 타입을 최적화할 수 있는 레디스 설정의 변경 방법을 살펴본다.
5장, '선호하는 언어의 클라이언트(여러 언어로 레디스 다루기)'에서는 PHP와 파이썬(Python), 루비(Ruby)로 레디스를 사용하는 방법을 보여준다. 특히 5장에서는 서로 다른 언어의 클라이언트에 따라 달라지는 기능들, 즉 블로킹 커맨드, 트랜잭션, 파이프라인, 스크립트를 부각해서 살펴보도록 한다.
6장, '일반적인 실수(실수 피하기)'에서는 상용 환경에서 레디스를 사용하거나, 또는 실무적으로 레디스와 관련해 작업할 때 흔히 범하는 일반적인 실수들을 보여준다. 문제를 해결하는 데 잘못된 데이터 타입을 사용하는 실수, 스왑 메모리를 너무 많이 사용하는 실수, 백업 전략을 비효율적으로 사용하는 실수 등을 포함한다.
7장, '보안 기술(데이터 보호하기)'에서는 레디스로 기본적인 보안을 설정하는 방법, 커맨드를 실행 안 되게 하거나 커맨드 이름을 바꿔 알아볼 수 없게 하는 방법, 방화벽 규칙으로 레디스를 보호하는 방법, stunnel을 이용해 클라이언트와 서버 간의 통신을 SSL로 암호화하는 방법을 보여준다.
8장, '레디스 확장하기(하나의 인스턴스를 넘어서기)'에서는 RDB와 AOF를 저장하는 방법, 레디스 슬레이브를 통한 복제 방법, 여러 장비에 걸쳐 데이터를 파티셔닝하는 방법을 소개한다. 또한 여러 인스턴스에 레디스 데이터를 투명하게 분산할 수 있는 트웸프록시(twemproxy)의 사용 방법도 살펴본다.
9장, '레디스 클러스터와 레디스 센티널(집단 지성)'에서는 레디스 클러스터(Redis Cluster)와 레디스 센티널(Redis Sentinel)의 차이점, 목적, CAP 정리에 맞추는 방법을 살펴본다. 또한, 레디스 센티널과 레디스 클러스터의 설정 방법과 설정 지시자를 설명하고, 레디스 센티널과 레디스 클러스터에서 장애가 발생하는 시나리오를 통해 레디스 내부에서 무슨 일이 벌어지는지 보여준다. 레디스 클러스터는 센티널보다 더 복잡하며, 클러스터를 관리하는 툴이 더 많기 때문에 레디스 클러스터에 대해 좀 더 상세히 다룬다. 내부 레디스 커맨드와 redis-trib 툴을 사용해 클러스터 관리를 설명한다.


Information Provided By: : Aladin

Author Introduction

맥스웰 데이브슨 다 실바(지은이)

독학으로 연구하고 터득하는 소위 ‘항상 공부하는’ 프로그래머다. 현재 뉴욕 타임즈에서 기술 담당 이사로 재직 중이다. 브라질의 레시페(Recife)에서 태어났고, 비디오 전문가로서 전 세계 시청자들에게 새로운 기술을 보여주는 것이 자신의 직업적 소명이라고 생각해 왔다. 확장성이 높은 제품을 개발하고 전달하는 일부터 큰 스케일의 비디오 솔루션을 혁신하고 구현하는 일을 하고 있다. 뉴욕 타임즈에 재직하기 전에는 브라질의 주요 미디어 네트워크 회사인 글로보(Globo)와 글로벌 디지털 미디어 회사인 테라(Terra)에서 근무했다. 맥스웰은 캠퍼스 파티(Campus Party), FISL, SET Broadcast & Cable, Streaming Media East, Streaming Media West와 같은 컨퍼런스에서 연사로 참석한 바 있고, 또 UFGRS, IFRS, UDESC, FEEVALE-RS 같은 브라질 유수의 대학에서 자신의 전문 연구분야를 강의해 왔다. 또한, 오픈소스 프로젝트의 개발자 및 기여자로 활약했으며 그에 대한 자세한 내용은 https://github.com/dayvson에서 찾아볼 수 있다. 또한 자신의 직업적 전문분야 외에도 게임과 인터랙티브 설치 예술 관련 창작 활동 등, 예술과 과학에 대한 남다른 열정을 갖고 정기적인 활동을 하고 있다. 그의 아들 아서(Arthur)는 그에게 세상의 모든 젊은이들의 삶에 과학을 전파할 기회를 찾을 수 있게 영감을 준다. 이 책은 첫 번째 저서지만, 이전에도 『Extending Bootstrap』과 『Learning JavaScript Data Structures and Algorithms 한국어판(에이콘, 2015)』, 두 책의 기술적인 감수를 진행했다. 링크드인(LinkedIn)(http://www.linkedin.com/in/dayvson)을 통해 그와 연락할 수 있다.

휴고 로페스 타바레스(지은이)

브라질 출신의 소프트웨어 개발자며, 데이터 집계와 분석을 전문으로 하는 기술 회사 이핏(Yipit)에서 플랫폼 엔지니어로 일하고 있다. 그 전에는, 남미에서 가장 큰 미디어 대기업인 그루포 글로보(Grupo Globo)의 인터넷 자회사 글로보닷컴(Globo.com)에서 라이브 스트리밍 비디오 개발을 했다. 그는 오픈소스 소프트웨어 개발 분야에 엄청난 영향을 끼쳤다. pip의 주요 공헌자 중 한 명이며, CPython과 파이썬 표준 라이브러리 개발에 참여했고, Splinter(웹 테스팅 툴) 공동 개발을 비롯해 중요한 여러 프로젝트에 공헌했다. https://github.com/hltbra에서 그가 공헌한 프로젝트를 확인할 수 있다. 또한 브라질 정부를 위해 애자일 방법론과 소프트웨어 품질을 기반으로 연구와 개발를 수행하는 NSI(Information Systems Research Group)에서 근무했다. 연구를 진행하면서 여러 테스팅 툴을 개발했고, 그중 가장 유명한 것은 Should-DSL과 PyCukes다. 팩트출판사에서 펴낸 『Python Testing Cookbook』에서 Should-DSL과 PyCukes 관련 내용을 찾아볼 수 있다. 휴식 중에는 건강관리를 위해 아마추어 파워리프터로서 근력 훈련을 하곤 한다. 링크드인(https://www.linkedin.com/in/hltbra)을 통해 그와 직접 연락할 수 있다.

김용환(옮긴이)

알티캐스트, 네이버, 라인, SK Planet을 거쳐 현재 카카오에서 개발자로 일하고 있다. 이제 마흔네 살의 평범한 개발자로 다양한 도전에서 에너지를 얻으며, 개발과 실무 경험을 블로그(http://knight76.tistory.com)에 기록하고 있다. 정보통신산업진흥원(NIPA) 산하의 소프트웨어공학포털에 개발 관련 내용을 공유했고, 여러 콘퍼런스와 세미나에서 그동안 쌓은 개발 지식을 발표하고 있다. 스스로에게는 물론 누군가에게 도움이 될 수 있다는 생각으로 번역을 시작했는데, 어느덧 15번째 책이다.

Information Provided By: : Aladin

Table of Contents

1장. 시작하기 (기초 단계) 
__설치 
____소스 설치 
__Hello Redis(커맨드라인 인터페이스 예제) 
__노드 설치 
__속성 자바스크립트 문법 가이드 
__노드와 레디스를 이용한 Hello World 
__레디스 데이터 타입 
____문자열 
______redis-cli를 활용한 문자열 예제 
______노드를 이용해 문자열로 투표 시스템 개발하기 
____리스트 
______redis-cli를 활용한 리스트 예제 
______일반적인 큐 시스템 구현 
____해시 
______redis-cli를 이용한 해시 사용 
______해시와 노드를 이용한 투표 시스템 
__요약 

2장. 고급 데이터 타입(검은 띠 따기) 
__셋 
____redis-cli를 이용한 셋 예제 
____딜 추적 시스템 개발 
__정렬된 셋 
____redis-cli를 이용한 정렬된 셋 예제 
____온라인 게임에서 리더보드 시스템 개발 
__비트맵 
____redis-cli를 이용한 비트맵 예제 
____웹 분석 시스템 개발 
__하이퍼로그로그 
____고유 방문자 수 계산: 하이퍼로그로그 vs 셋 
____redis-cli를 사용한 하이퍼로그로그 예제 
____웹사이트 방문 수를 계산하고 얻기 
__요약 

3장. 시계열(관찰 집합) 
__기초 구축 
__해시로 최적화 
__정렬된 셋과 하이퍼로그로그를 사용한 유일한 엘리먼트 추가 
__요약 

4장. 커맨드(괴물들이 사는 나라) 
__Pub/Sub 
__트랜잭션 
__파이프라인 
__스크립트 
____루아 기본 문법 
____레디스, 루아를 만나다 
__기타 커맨드 
____INFO 
____DBSIZE 
____DEBUG SEGFAULT 
____MONITOR 
____CLIENT LIST와 CLIENT SETNAME 커맨드 
____CLIENT KILL 
____FLUSHALL 
____RANDOMKEY 
____EXPIRE와 EXPIREAT 
____TTL과 PTTL 
____PERSIST 
____SETEX 
____DEL 
____EXISTS 
____PING 
____MIGRATE 
____SELECT 
____AUTH 
____SCRIPT KILL 
____SHUTDOWN 
____OBJECT ENCODING 
__데이터 타입의 최적화 
____문자열 
____리스트 
____셋 
____해시 
____정렬된 셋 
____메모리 사용 측정 
__요약 

5장. 선호하는 언어의 클라이언트(여러 언어로 레디스 다루기) 
__PHP 
____PHP의 기본 커맨드 
____PHP의 블로킹 커맨드 
____PHP의 파이프라인 
____PHP의 트랜잭션 
____PHP에서의 스크립트 사용 
__파이썬 
____파이썬의 기본 커맨드 
____파이썬의 블로킹 커맨드 
____파이썬의 파이프라인 
____파이썬의 트랜잭션 
____파이썬에서의 스크립트 사용 
__루비 
____루비의 기본 커맨드 
____루비의 블로킹 커맨드 
____루비의 파이프라인 
____루비의 트랜잭션 
____루비에서 스크립트의 사용 
__요약 

6장. 일반적인 실수(실수 피하기) 
__작업에 대한 잘못된 데이터 타입 
____셋을 이용한 접근 방식 
____비트맵을 이용한 접근 방식 
__다중 레디스 데이터베이스 
__스왑 사용 
__메모리를 적절하게 설정하지 않기 
__부적절한 저장 전략 
__요약 

7장. 보안 기술(데이터 보호하기) 
__기본적인 보안 
____중요한 커맨드를 알기 어렵게 하기 
__네트워크 보안 
____방화벽 규칙으로 레디스 보호 
____루프백 네트워크 인터페이스로 레디스 실행 
____가상 사설 클라우드에서 레디스 실행 
__클라이언트와 서버 간의 통신 암호화 
____클라이언트와 서버에서 stunnel 실행하기 
____서버에서의 stunnel 실행 및 SSL을 지원하는 레디스 클라이언트 사용 
__요약 

8장. 레디스 확장하기(싱글 인스턴스 넘어서기) 
__저장 
____레디스 데이터베이스(RDB) 
____AOF 
____RDB 대 AOF 
__복제 
__파티셔닝 
____범위 파티셔닝 
____해시 파티셔닝 
____미리 샤딩하기 
____일관적 해싱 
____태깅 
____데이터 저장소 대 캐시 
____레디스 파티셔닝의 구현 
__트웸프록시로 자동 샤딩하기 
____트웸프록시를 사용한 다른 아키텍처 
__요약 

9장. 레디스 클러스터와 레디스 센티널(집단 지성) 
__CAP 정리 
__레디스 센티널 
____기본 센티널 설정 
____센티널에 연결 
____네트워크 파티션(스플릿-브레인) 
__레디스 클러스터 
____해시 슬롯 
____해시 태그 
____기본 클러스터의 생성 
____노드 검색과 리디렉트 
____설정 
____다른 레디스 클러스터 아키텍처 
____클러스터 관리 
______클러스터 생성 
______슬레이브/복제본 추가 
______슬레이브 노드를 이용해 읽기 확장 
______노드 추가 
______노드 삭제 
______redis-trib 툴을 이용한 레디스 클러스터 관리 
__요약

New Arrivals Books in Related Fields

장세진 (2020)