상세 컨텐츠

본문 제목

단계별로 배우는 레디스 핵심 가이드: 실전 레디스 (하야시 소고)

카테고리 없음

by 책을읽고싶은소년 2024. 7. 16. 00:00

본문

https://m.yes24.com/Goods/Detail/126528836

 

실전 레디스 - 예스24

최적의 운영을 위한 레디스 실전 노하우레디스는 인메모리에서 빠르게 동작하고, 자료형과 기능을 이용하여 데이터를 유연하게 표현할 수 있어 최근 웹 시스템 등에서 널리 사용되고 있다. 『

m.yes24.com

 

레디스는 원격 데이터 저장 시스템으로서 요즘 기업에서 많이들 씁니다. p6의 역자 서대원님 서문을 보면, 사람들이 드는 레디스를 공부해야 하는 이유 중 하나가 "회사에서 쓰니까"가 있다면서, 레디스 공부의 목적이라는 게 단순히 그런 데 있다기보다, 앞으로 확장성이 무한하며 개인 레벨에서도 쓸모가 많다는 점을 듭니다. 그러나 이미 다양한 회사들이 현장에서 레디스를 쓰는 이유부터가, 시스템이 탁월하여 업계 표준이 되어 간다는 게 가장 큽니다. 갈수록 고객 데이터 관리가 중요해지고 SQL 기반의 사이트 최적화가 강조되는 요즘, 레디스 다루는 실력이야말로 직장인의 필수 소양이겠습니다. 

p69를 보면 저자는 본문과 별개 칼럼을 통해 레디스의 String형은 지금도 512MB가 최대인지를 묻고 이에 대한 해답을 스스로 내어놓습니다. 이 책의 감수자가 정경석 대표인데 이미 11년 전에 한빛출판사에서 나온 <이것이 레디스다>를 저술한, 국내에서는 레디스에 관한 한 최고 권위자라 할 만합니다. 이미 그때에도 레디스 공식 프로토콜에 512MB 제한이 있었는데, 레디스의 빠른 속도는 사실 이런 제한 규정에도 이유가 있었습니다. 이제 4.0.7 버전에서 proto-max-bulk-len 지시자가 추가되면서 512MB 이상으로도 설정 변경이 가능해졌다고 책에 나옵니다.

레디스에서 사용자들이 간혹 헷갈려하는 게 Consumer Group 쿼리 모드 명령어들입니다. XGROUP이 있고 XREADGEOUP이 따로 있습니다. 전자가. 지정한 키스트림에 지정된 Consumer Group을 관리한다면 후자는 Consumer Group 내 각 엔트리를 가져온다는 게 다르다면 다릅니다. p207에서는 루아(Lua)가 설명되는데, 이 루아가 있어서 타 시스템과는 달리 더 빠른 속도가 레디스에서 나오는 것입니다.

p221에서는 루아 디버거가 설명되며, 예전 버전에서는 이 루아를 실행하기 위해 이페머럴 스크립트만을 사용할 수 있었으나(p208), 레디스 7.0 이후에는 다른 옵션으로 레디스 함수가 하나 더 생겼다고 p225에 나옵니다. 이 책에서 가장 잘 설명된 대목도 p225 이하의 레디스 함수 파트입니다. p248에서는 파이프라인, 이페머럴스크립트, 레디스함수, 트랜잭션, 모듈 기능이 비교되는 칼럼이 따로 나옵니다. 하야시 소고[林昌吾] 엑스퍼트가 쓴 책의 장점 중 하나가, 이처럼 개발자들이 껄끄러워하는 토픽을 따로 모아 짚어 준다는 점이겠습니다.

책의 절반 정도 분량이 파트 1 기초이며, 중반 넘어가면서 파트 2 실전편이 이어집니다. 현재 회사에서 레디스 업무를 맡아하는 분들이라면 이 파트2에서 참고할 만한 내용이 많겠습니다. 운용관리, 트러블슈팅, 레플리케이션, 클러스터, 메모리 관리, 클라우드 관련 내용들이 다뤄집니다. p311에서는 AOF에 대해 설명하는데 이게 기존 스냅숏과는 달리 "실시간 백업 유형이므로 내구성이 높다"는 게 장점이라고 요약합니다. 또 플러시된 데이터가 거의 영구적으로 저장 가능한 것도 특징입니다. 이렇게 레디스의 내구성을 고려하면서도 내부적으로 데이터를 삭제하는 방법도 알 필요가 있겠는데, 실제 업무에서 갑자기 데이터가 사라지면 사람 참 미치게 합니다. p319에 왜 그런 일이 벌어지는지 8개 정도의 원인을 짚습니다. 

회사에서 ACL 기능 제어 정도는 척척 해 줘야 일 잘한다는 소리가 나오겠습니다. p369에서도, 괜한 잡소리 없이 바로 실제 사례로 치고들어갑니다. 규칙의 순서가 중요하다는 점 저자는 다시 강조합니다. p377에서도 또 이 점이 강조됩니다. 선택자로 +SET ~sample-*, 그리고 +GET ~sample-*을 지정한 예가 나오는데 아마 현장에서 가장 자주 맞닥뜨렸을 만한 상황이겠습니다. p415를 보면 "성능상 문제가 발생했을 때, rdb_bgsave_in_progress 값이 1이라면 스냅숏 생성 중에 포크 처리의 영향을 받고 있을 가능성이 크다"고 나옵니다. 정말 그렇지 않습니까? 역시 현장에서 잔뼈가 굵은 전문가의 진단은 다릅니다.

TCP 포트를 두 개 사용하는 게 레디스 클러스터인데 p484를 보면 그 두번째 포트를 클러스터 버스 포트라고 부른다고 나옵니다. 많이들 들어 보셨을 겁니다. 다음 페이지에 그림으로 노드 간 완전 메시 구조가제시됩니다. 동작 메커니즘 설명도 제가 여태 본 중에는 설명이 가장 쉬웠습니다. p499에서 다루는 MOVED 리다이렉트와 ASK 리다이렉트도 뭐가 서로 어떻게 다른지 명쾌하게 구별합니다.

고급 파트에서 우리가 특히 유용하게 익힐 만한 내용은 클라우드를 활용한 트러블슈팅(p581)입니다. 특히 제가 도움을 받았던 내용은 p593의 지연 관련 메트릭 부분이었습니다. 또 항상 골칫거리였던, 이벤트 관련 라이브러리인 ae(SQL 다루면서 많이 접했던) 설명도 참 좋았습니다. 현장의 생생한 감각이 살아 있는 최고 엔지니어의 살아 있는 강의를 듣는 느낌이었습니다.   

*예스24 리뷰어클럽을 통해 출판사에서 제공받은 책을 읽고 솔직하게, 주관적으로 작성한 후기입니다.

#실전레디스 #리뷰어클럽서평 #리뷰어클럽리뷰 #한빛미디어 #레디스 #하야시소고 #SQL #데이터관리시스템