최근에 레디스(Redis)책이 출간되었습니다.
현업에서 많이 사용하고, 오래동안 다양한 서비스에서 활용도가 높은 오픈소스인데, 책은 생각보다 출간된것이 적습니다.
그래서 최근의 버전업된 내용 및 기초 및 고급내용도 설명하는 책이 필요했는데, 그런 점에서 "실전 레디스" 출간 소식은
매우 반가운 것 같습니다.
이책을 번역하신 서대원 역자님은 2013년에 "이것이 레디스다" 책을 집필하신 분이십니다.
실제 레디스 사용하신 저자분께서 이 책을 번역하신 것은 매우 좋은 조합이라고 생각합니다.
책의 번역 쿼릴티도 매우 좋을것이기 때문입니다.
책의 두께는 매우 두껍습니다. 총 700Page로 구성되어 있습니다.
책의 대상 독자는 레디스를 처음 사용하려는 독자 및 현재 사용중인 현업을 모두 포함한 전체를 대상으로 합니다.
책의 구성이 총 3단계로 되어 있는데, 1부 기초, 2부 실전, 3부 고급으로 구성되어 있어서
필요한 부분을 바로바로 보시면 좋을것 같습니다.
■ 1부 기초
· 처음 Redis를 사용하려고 하는 경우, 가장 많이 사용하는 RDBMS와 어떠한 부분이 구체적으로 다른지 상세하게 설명합니다.
RDBMS의 ACID특성에 대해서 원자성/일관성/격리성/영속성에 대해서 Redis를 통해서 어떻게 보장을 할지에 대한 부분은
물론 100% 동일하게 해당 ACID특성이 보장되는 것은 아니지만, 처음 도입을 고려할때 중요한 참고 자료가 됩니다. (p.43)
· 설치 관련
사용을 위해서는 도커를 이용하는 방법등 다양하게 있지만, 책에서는 ubuntu에서 설치하는 방법과 소스코드를 통해서 설치하는 방법
2가지를 예로 들어서 설명합니다. 레디스를 처음 설치하고 처음 redis-cli를 통해서 정보를 입력하는 것은 쉽게 구성할수 있습니다.
· 자료형과 기능
레디스를 자유롭게 잘 사용하기 위해서는, 해당 내용이 매우 중요하고 기초가 됩니다.
String, List, Hash, Set, Sorted Set형에 주요 자료형 및 보조 자료형(비트밉, 지리적 공간 인덱스)에 대해서 자세히 설명을 합니다.
· Pub/Sub모델에 대해서, Redis에서는 자료형이 아니고 기능 형태로 제공합니다.
- HyperLogLog기능을 이용해서 고유한 수를 계산하는 방식에 활용가능합니다.
· Redis스트림 : 스트림 작업이 가능하고 채팅등에서 활용 가능합니다.
· 루아
lua는 프로그래밍 언어입니다. 레디스는 내장 스크립트 언어로 루아를 채택하고 있습니다.
레디스 명령어로 처리하기 어려운 부분에 대해서 루아를 통해서 빠르게 비지니스 로직을 작성해서, 쉽게 구현이 가능합니다.
레디스 7.0 버전 이후 부터는 레디스 함수의 기능을 통해서 기존에 개발된 사항을 재사용이 가능하게 되었습니다.
루아도 언어수준으로 다양하게 제공되는 라이브러리들이 있습니다.
· 트랜잭션에 대한 실습 및 레디스 4.0 부터 제공되는 다양한 모듈에 대한 사용법에 대해서 살펴볼수 있습니다.
· 우리는 레디스를 다양한 언어에서 사용이 필요합니다.
지금 거의 모든 언어에 대해서 지원한다고 보시면 됩니다.
· 간단한 어플리케이션 작업
- PHP+MySQL 를 통한 세션정보 캐시 관리 기능 / List형을 사용한 뉴스 게시 기능
- Python을 이용한 레디스 스트림을 사용한 실시간 채팅 구현 기능
이러한 구현 샘플을 동작해보면서, 우리가 활용할수 있는 범위를 간접적으로 확인 및 테스트 해볼수 있어서 좋습니다.
■ 2부 실전
· 2부에서는 조금 더 다양하게, 운영시 발생할수 있는 경우에 케이스에 대해서 내용구성이 되어 있습니다.
레디스 운영 관리 / 트러블슈팅 / 레플리케이션 / 레디스 클러스터 / 메모리 관리 / 클라우드에서 사용하는 레디스
해당 내용을 미리 알고 최초 서비스에 적용시에는 운영중에 발생 할 수 있는 Risk를 조금이라도 줄일수 있어서
관련 내용도, 어떠한 고려사항이 있는지 인지하고 있어야 합니다.
· 데이터 영속성 관련
스냅숏, AOF 2가지 방식으로 어떻게 동작하고 장단점을 소개합니다.
이 부분은 어떠한 시점으로 데이타를 복원할지 여부등에 대한 구성을 할수 있는 내용입니다.
· 캐시 서버
보통 Redis를 캐시역활로 활용합니다. 메모리를 이용한 빠를 처리가 필요한 부분에 대한 기능입니다.
읽기 관점 아키텍처, 모범사례, 사용하면 안좋은 패턴등 단순하게 값을 넣고 빼고 사용하는것보다
서비스 운영에 필요한 노크 크기 설정, 크기, 설정 redis.conf 각각의 옵션에 대해서 잘 설명되어 집니다.
보안에 대한 부분도 외부에서 접속이 불가능한 설정은 매우 중요합니다.
· 트러블슈팅
Redis에 문제가 있는 경우, 우리는 무엇을 가장 먼저 봐야 할까요?
어떠한 명령어로 우리가 보고 싶은 장애 사항에 대한 정보를 확인할수 있을까요?
-INFO 명령어를 통해서 Server, Clients, Memory, Persistence, Stat, CPU부분 등등 어떠한 내용이 중요한지 표시됩니다.
· 레플리케이션 관련
트래픽아 많이지면, Redis서버를 늘려야 하고, 해당 아키텍처를 구성해야 합니다.
여러대의 서버를 독자분이 테스트하기는 쉽지 않기 때문에 도커 컴포넌트를 이용해서 여려대의 서버를
구성하는 실습구성을 진행합니다. 그것도 연결되어서 레디스 클러스터에 대한 구성도 설명됩니다.
· 3부 고급 부분에서는 레디스 관련 기술을 찾아보고, 소스코드를 통해서 여러관점으로 동작방식을 소개합니다.
레디스를 이용한 기술들(RESP, SD, ae, RAX)등에 대해서 내용구성이 되어 있고
오픈소스이기 때문에 실제 코드를 통해서, 레디스를 잘 사용하기 위한 정보를 제공합니다.
부록 부분도 멤캐쉬드에 대한 내용도 다루고 있습니다.
'book' 카테고리의 다른 글
프런트엔드 개발을 위한 테스트 입문 (0) | 2024.07.07 |
---|---|
나만의 GPTs 앱으로 생산성 10배 늘리기 (챗GPT 생성 AI로 만드는 14가지 업무 자동화와 검색 엔진 연동 애플리케이션) (0) | 2024.06.23 |
실전 SQL 퀵스타트 (0) | 2024.05.24 |
더 나은 프로그래머 되는 법 (0) | 2024.05.23 |
자바 잘 읽는 법 (자바 코드를 이해하고, 디버깅하고, 최적화하는 요령) (0) | 2024.05.06 |