Redis của người phỏng vấn tại Kakao, xử lý hơn 500.000 lượt truy cập mỗi giây
Đây là khóa học Redis được xây dựng cùng với người phỏng vấn đương nhiệm tại Kakao. Khóa học bao gồm thực hành các cấu trúc dữ liệu từ String đến Sorted Set, cũng như cấu hình Sentinel và Cluster, giúp bạn xây dựng nền tảng thiết kế vững chắc để áp dụng vào cả phỏng vấn lẫn thực tế.
Vượt xa việc chỉ nhập các câu lệnh đơn thuần, đây là một bài giảng cho thấy những điểm cần lưu ý tùy theo môi trường hạ tầng thực tế và cả góc nhìn về hash slot... Tôi nghĩ đây là bài giảng cho thấy thế nào là một nhà phát triển thực thụ chứ không phải chỉ là một người viết code đơn thuần, và một nhà phát triển thực thụ cần phải biết những gì về Redis.
Cá nhân tôi nghĩ rằng thật không đúng khi nói rằng không có gì để học từ bài giảng này. Tôi thấy có rất nhiều nội dung để học hỏi (không phải dưới góc độ câu lệnh đơn thuần mà là dưới góc độ thực tế).
Tôi đã hiểu được một nhà phát triển thực thụ chứ không phải một người viết code thì cần phải trăn trở về điều gì. Xin cảm ơn.
5.0
02년생 개발자
86% đã tham gia
Nhân dịp Tết, mình đã thanh toán để xem thử và học hỏi được nhiều hơn mong đợi. Đây đúng là phong thái của một nhà phát triển thực thụ.... Mình thấy bản thân còn thiếu sót nhiều quá ㅠㅠ Cảm ơn bạn rất nhiều!!
5.0
warna
86% đã tham gia
Vì đây là bài giảng đặc biệt nhân dịp Tết nên mình đã thanh toán và xem ngay lập tức!! Mình thường xuyên theo dõi các bài giảng của người chia sẻ, và lần nào cũng vậy, nội dung đều rất tuyệt vời và chỉ tập trung vào những điểm cốt lõi!!
Mình nghĩ bài giảng lần này cũng rất thực tế, giúp người học tiếp thu được nhiều nội dung và xây dựng nền tảng vững chắc.
1. Phần lớn thời lượng là thực hành.
- Giảng viên giải thích đầy đủ lý thuyết, nhưng phần thực hành không hề thiếu hụt mà ngược lại, mình thấy phần thực hành còn nhiều hơn cả lý thuyết.
2. Nội dung ngắn gọn và mang tính thực tiễn cao.
- Không có nội dung rườm rà, mình đã học được các phương pháp và mô hình sử dụng trong thực tế.
3. Tập trung hoàn toàn vào Redis.
- Đây có thể vừa là nhược điểm vừa là ưu điểm, nhưng nếu bạn chỉ muốn học về dịch vụ Redis thì mình nghĩ không có bài giảng nào tốt hơn bài này.
Mình sẽ rất mong chờ các bài giảng tiếp theo. Cảm ơn bạn đã tạo ra một bài giảng chất lượng như vậy!!
Bạn sẽ nhận được điều này sau khi học.
Tầm nhìn để có thể giải thích được tại sao phải dùng Redis như vậy, chứ không chỉ đơn thuần là “dùng” nó.
Kỹ năng trả lời thực chiến bằng cấu trúc và sự đánh đổi (Trade-off) thay vì học thuộc lòng trước các câu hỏi của người phỏng vấn.
Tiêu chí để lựa chọn Single, Replica, Sentinel và Cluster theo từng tình huống
Cách tư duy để tránh sử dụng Redis sai cách trong thực tế làm việc
Góc nhìn xem Redis là thành phần cốt lõi của dịch vụ thay vì chỉ là bộ nhớ đệm (cache)
Phát triển · Lập trình · Backend
Khóa học Redis của người phỏng vấn tại Kakao, người xử lý hơn 500.000 lượt truy cập mỗi giây
Dù có đang sử dụng Redis, nhưng thật khó để giải thích tại sao lại phải thiết kế như vậy. Khóa học này không phải là việc ghi nhớ các câu lệnh, mà tập trung vào việc lựa chọn cấu trúc nào trong môi trường lưu lượng truy cập thực tế và cách đọc hiểu các Trade-off đó. Tôi sẽ giúp bạn xây dựng những tiêu chuẩn để có thể tự mình giải thích được trong cả phỏng vấn lẫn công việc thực tế.
Mức độ: Nhập môn
Trọng tâm thực hành
Cung cấp tài liệu học tập
Thời hạn khóa học vô hạn
500,000+Quy mô lưu lượng truy cập mỗi giây mà người phỏng vấn đề cập đến
Đan xen giữa khái niệm và thực hànhHọc xong một cấu trúc dữ liệu là thực hành ngay bằng tay
5 loại cấu trúc dữ liệuString · List · Set · Hash · Sorted Set
Khóa học này là khóa học Redis dành cho người mới bắt đầu, giúp bạn làm quen với năm cấu trúc dữ liệu cơ bản của Redis và cách thiết lập môi trường từ Single đến Cluster thông qua thực hành. Chương trình giảng dạy được biên soạn bởi người phỏng vấn tại Kakao đang làm việc thực tế · Thực hành trên macOS · Docker · Node.js
Redis · Kho lưu trữ dữ liệu In-memorySET /
GET · 80% mô hình sử dụng là StringBLPOP · Hàng đợi ưu tiên BlockingSADD · Set không cho phép trùng lặpHSET ·
Hash có thể hiệu quả về bộ nhớ hơn StringZADD / ZRANGE · Xếp hạng trò chơi · Bảng xếp hạngLưu trữ bền vững ·
RDB / AOFSingle → Replica → Sentinel → ClusterHash Slot · Góc nhìn ShardingDocker 28.0.0 · Node.js v23.11.0 ·
macOS (M3)Tập trung thực hành“Tôi tuyệt đối không tuyển những người không biết về Redis trong buổi phỏng vấn” — Người phỏng vấn đương nhiệm tại KakaoRedis · Kho lưu trữ dữ liệu In-memorySET /
GET · 80% mô hình sử dụng là StringBLPOP · Hàng đợi ưu tiên BlockingSADD · Set không cho phép trùng lặpHSET · Hash có thể hiệu quả về bộ nhớ hơn StringZADD / ZRANGE · Xếp hạng trò chơi · Bảng xếp hạngLưu trữ bền vững ·
RDB / AOFSingle → Replica → Sentinel → ClusterHash Slot · Góc nhìn ShardingDocker 28.0.0 · Node.js v23.11.0 ·
macOS (M3)Tập trung thực hành“Tôi tuyệt đối không tuyển những người không biết về Redis trong buổi phỏng vấn” — Người phỏng vấn đương nhiệm tại Kakao
Lý do khóa học này bắt đầu
Người phỏng vấn đương nhiệm tại Kakao đã đề xuất trước
Dưới đây là nội dung cuộc trò chuyện thực tế. Với lý do "chỉ với bài giảng Redis tự làm thì vẫn chưa đủ", người phỏng vấn đã trực tiếp đứng ra đề nghị sẽ tự mình tổng hợp và truyền đạt lại.
Người phỏng vấn KakaoHong à, tôi có việc này muốn làm.
Gì vậy trời… Tôi đã dùng hết cả ngày nghỉ phép để quay hết những chủ đề tôi muốn làm rồi mà ㅠㅠ
Người phỏng vấn KakaoTrước đây cậu từng tự mình xử lý Redis rồi đúng không? Lại còn chia nó làm hai phần nữa. Tớ
thấy không hài lòng chút nào. Sao cậu chỉ xử lý được đến mức đó thôi vậy? ㅋㅋ Tớ muốn hướng dẫn cho cậu sâu hơn nữa.
Thật lòng mà nói, tôi nghĩ Redis cũng quan trọng như Database vậy. Tôi tuyệt đối sẽ không tuyển những người không biết về nó trong buổi phỏng vấn đâu. Mà thực ra cũng chẳng có ai là không biết cả.
Được rồi… tôi phải làm theo ý ông thôi. Thay vào đó, hãy tự tay tổng hợp và đưa cho tôi tất cả các tệp thực hành và nội dung lý thuyết nhé. Dạo này tôi thực sự không có thời gian đâu.
Người phỏng vấn Kakaoㅋㅋ Được rồi. Tôi sẽ tự mình tổng hợp lại rồi gửi cho. Đợi một chút nhé.
Đó là cách khóa học này được tạo ra. Đây chính là nội dung mà người phỏng vấn đã nói rằng "dù phải tự mình tổng hợp lại cũng muốn cho bạn biết".
“
Những người không biết Redis, tôi tuyệt đối không tuyển trong buổi phỏng vấn.
Nhà phát triển máy chủ Kakao đương nhiệm · Người phỏng vấn12 năm kinh nghiệm · Môi trường lưu lượng truy cập 500,000+ lượt/giây
Đã từng có những khoảnh khắc như thế này, đúng không?
Redis, biết cách dùng nhưng lại lúng túng khi giải thích
Redis là một kho lưu trữ dữ liệu trong bộ nhớ (in-memory data store), được sử dụng ở những vị trí quyết định tốc độ và sự ổn định của backend như bộ nhớ đệm (cache), phiên làm việc (session), hàng đợi (queue) hay bảng xếp hạng. Mặc dù đã quen tay với các câu lệnh, nhưng khi được hỏi "tại sao lại là cấu trúc này" thì lại cứng họng. Vấn đề không nằm ở câu lệnh, mà là sự phán đoán đằng sau đó.
Đang sử dụng Redis nhưng thật khó để giải thích tại sao lại thiết kế như vậy
Khi được hỏi về Redis trong buổi phỏng vấn, tôi luôn chỉ dừng lại ở những câu trả lời nông cạn.
Chỉ sử dụng cache như một tính năng đơn thuần mà chưa từng suy nghĩ về cấu trúc hay sự đánh đổi (Trade-off)
Không có tiêu chuẩn rõ ràng về việc khi nào nên chọn Single, Replica, Sentinel hay Cluster.
Đã từng gặp phải sự cố hoặc vấn đề hiệu suất của Redis trong thực tế, hoặc luôn cảm thấy lo lắng rằng điều đó sẽ xảy ra.
Cùng một câu hỏi, những câu trả lời khác nhau
"Redis 환경 구성 패턴을 설명해 주세요"
Chỉ với một câu hỏi mà người phỏng vấn thường xuyên đặt ra này, chiều sâu của ứng viên sẽ được phân định rõ ràng.
BEFORE
Người phỏng vấn: Hãy giải thích các mô hình cấu hình môi trường Redis.
"À... vâng, đợi tôi một chút. Theo tôi được biết, nó bao gồm bốn loại: Single, Replica, Sentinel và Sharding Cluster."
Liệt kê danh sách đã học thuộc lòng rồi kết thúc. Không có sự kết nối về việc tại sao cấu trúc đó lại ra đời hay mỗi cấu trúc giải quyết vấn đề gì.
AFTER · 이 강의를 듣고 나면
Người phỏng vấn: Hãy giải thích các mô hình cấu hình môi trường Redis.
"Single là một thực thể đơn lẻ nên khó đảm bảo tính sẵn sàng cao và bị giới hạn về bộ nhớ. Vì vậy cấu trúc Replica đã ra đời, nhưng vẫn còn vấn đề là việc chọn lại Master phải thực hiện thủ công. Để tự động hóa việc này, Sentinel đã xuất hiện, và khi quy mô lớn hơn nữa, chúng ta sẽ hướng tới Sharding Cluster để chia nhỏ dữ liệu ra lưu trữ…"
Giải thích theo một luồng thống nhất về lý do cấu trúc đó ra đời, nó giải quyết vấn đề gì và còn những đánh đổi (Trade-off) nào. Đây là sự thấu hiểu chứ không phải là học vẹt.
Câu trả lời AFTER đó, các bạn cũng có thể làm được.
Nếu bạn bắt đầu bằng việc tìm hiểu lý do tại sao cấu trúc đó lại xuất hiện, bạn sẽ có thể trả lời theo một dòng chảy logic thay vì chỉ là một danh sách đã học thuộc lòng.
Single · Replica · Sentinel · Cluster khác nhau như thế nào?
Có bốn cấu hình môi trường Redis chính. Càng về sau, mỗi cấu hình lại giải quyết từng vấn đề mà cấu trúc trước đó để lại. Nếu hiểu được trình tự này, bạn có thể trả lời phỏng vấn theo một mạch logic thay vì chỉ liệt kê đơn thuần.
Single
인스턴스 하나로 운영합니다. 구성이 단순한 대신 메모리 한계가 있고, 장애가 나면 고가용성을 보장하기 어렵습니다.
Replica
마스터를 복제해 읽기를 나눕니다. 다만 마스터가 죽었을 때 재선정이 수동이라는 문제가 남습니다.
Sentinel
그 수동 재선정을 자동화합니다. 마스터 장애를 감지해 레플리카를 새 마스터로 승격합니다.
Cluster
데이터를 해시 슬롯 단위로 여러 노드에 나눠 담는 샤딩 구조입니다. 단일 노드의 메모리 한계를 넘어야 할 때
갑니다.
Những gì bạn sẽ nhận được sau khóa học
Năm điều đọng lại sau khóa học này
Tầm nhìn để có thể giải thích không phải là "dùng" Redis mà là "tại sao phải dùng như vậy"
Khả năng trả lời thực chiến các câu hỏi phỏng vấn bằng cấu trúc và sự đánh đổi (Trade-off) thay vì học thuộc lòng
Tiêu chí lựa chọn theo từng tình huống cho Single, Replica, Sentinel và Cluster
Cách tư duy để tránh sử dụng Redis sai cách trong thực tế công việc
Quyết định thiết kế Redis từ chỗ chỉ dùng làm bộ nhớ đệm thành thành phần cốt lõi của dịch vụ bao quát cả session, hàng đợi (queue) và bảng xếp hạng (ranking)
Bản đồ cấu trúc dữ liệu
Khi nào nên sử dụng cấu trúc dữ liệu Redis nào?
Redis có năm cấu trúc dữ liệu cơ bản là String, List, Set, Hash và Sorted Set. Tùy thuộc vào kiểu dữ liệu của giá trị mà những việc có thể thực hiện sẽ khác nhau. Khóa học này sẽ đi sâu vào khái niệm của từng cấu trúc dữ liệu và sau đó tiến hành thực hành ngay lập tức.
String
가장 기본이 되는 타입. 실제 Redis 사용 패턴의 80%가 여기에 해당합니다.
List
순서가 있는 값의 나열. BLPOP으로 대기하는 Blocking 방식의 우선순위 큐를 만듭니다.
Set
중복을 허용하지 않는 집합. 중복 제거와 포함 여부 판정에 씁니다.
Hash
필드-값 묶음. 상황에 따라 String보다 메모리를 효율적으로 쓸 수 있습니다.
Sorted Set
점수로 정렬되는 집합. 게임 랭킹과 리더보드가 대표 사례입니다.
Chương trình học
Lộ trình khóa học Redis
Lý thuyết và thực hành luôn đi đôi với nhau. Chúng ta sẽ nắm vững khái niệm của từng cấu trúc dữ liệu và làm quen ngay lập tức thông qua các bài thực hành.
Phần 1. Giới thiệu bài giảng
Giới thiệu bài giảng · Xem trước
Mã nguồn
Trang hữu ích liên quan đến Redis · Xem trước
Phần 2. Nhập môn Redis
Công ty nào cũng dùng Redis, nhưng rốt cuộc cậu là cái gì vậy?
Các kỹ thuật thiết kế môi trường Cluster đa dạng của Redis
Phần 3. Cấu trúc dữ liệu cơ bản · Lệnh · Thực hành
80% các mẫu sử dụng Redis là kiểu String
[Thực hành] Thiết lập môi trường thử nghiệm và String
Hàng đợi ưu tiên sử dụng Blocking, Redis List
[Thực hành] Thực hành Redis List và Debug BLPOP
Redis Set không cho phép trùng lặp
[Thực hành] Redis Set không cho phép trùng lặp
Redis Hash có thể hiệu quả về bộ nhớ hơn String
[Thực hành] Redis Hash
Redis Sorted Set cho bảng xếp hạng và Leaderboard trò chơi
[Thực hành] Sorted Set
Phần 4. Những lưu ý khi sử dụng Redis trong thực tế & Memory Persistence
Nội dung này đề cập đến những lưu ý khi sử dụng Redis và các chiến lược lưu trữ dữ liệu bền vững (persistence) dễ bị bỏ qua trong thực tế.
Phần 5. Các khái niệm và thực hành để sử dụng Redis như một chuyên gia
Không chỉ dừng lại ở việc sử dụng đơn thuần, bạn sẽ được học các mô hình sử dụng và khái niệm chuyên sâu của chuyên gia thông qua thực hành.
Phần 6. Master cấu hình môi trường Redis
Trực tiếp thực hiện cấu hình môi trường và làm chủ cả khía cạnh thiết lập.
Công nghệ được đề cập · Môi trường thực hành
Thực hành bằng cái gì?
Redis
String
Danh sách
Set
Hash
Sorted Set
JavaScript
Node.js v23.11.0
Docker 28.0.0
backend
macOS (M3)
Tất cả các bài thực hành đều được thực hiện bằng cách khởi tạo môi trường Redis bằng Docker. Các ví dụ được viết bằng JavaScript (Node.js) dưới góc nhìn của backend và được sắp xếp dựa trên hệ điều hành macOS, các bài giảng thực hành sẽ nối tiếp ngay sau phần lý thuyết về khái niệm của từng cấu trúc dữ liệu.
Nếu bạn đã xem hết cả chương trình học
Thời hạn khóa học là vô hạn nên bạn có thể mở ra xem lại bất cứ khi nào cần thiết.
Tôi đã trích dẫn nguyên văn ba thông báo tuyển dụng Backend. Redis đều nằm trong danh sách các kỹ năng yêu cầu.
NAVER CloudPhát triển BE dịch vụYêu cầu
Redis
NEXONLập trình viên máy chủYêu cầu Redis
KBNhóm phát triển BackendYêu cầu Redis
Việc ghi nhớ tên các cấu trúc dữ liệu ghi trong thông báo tuyển dụng không khó. Điều khó khăn nằm ở bước tiếp theo. Khi được hỏi tại sao lại chọn cấu trúc đó và bạn đã đánh đổi điều gì, khả năng bạn có thể tiếp tục trả lời hay không mới là điểm khác biệt.
Ai là người giảng dạy?
Được tạo ra bởi sự kết hợp giữa nhà phát triển server đang làm việc thực tế và người phỏng vấn
Khóa học này được thực hiện bởi Hong, một nhà phát triển máy chủ nền tảng tại Pangyo, cùng với Choi, một nhà phát triển máy chủ kiêm người phỏng vấn với 12 năm kinh nghiệm tại trụ sở chính của Kakao.
Người chia sẻ kiến thức · Phát triển server nền tảng Pangyo
Hong
Tôi đang đảm nhận việc phát triển máy chủ nền tảng tại Pangyo. Tôi tiếp tục hoạt động với tư cách là người chia sẻ kiến thức để chia sẻ các phương pháp tự học cũng như những vấn đề và giải pháp gặp phải trong thực tế. Các bài giảng không được thực hiện một mình mà được xây dựng cùng với nhiều nhà phát triển khác đang làm việc trong ngành.
Chia sẻ kiến thức trên Inflearn · Điều hành nhiều bài giảng Backend
[前] Phát triển Backend Blockchain · Metaverse
[現] Nhà phát triển máy chủ nền tảng tại Pangyo
Kakao · Nhà phát triển Server 12 năm kinh nghiệm · Người phỏng vấn
Choi
Tôi là nhà phát triển với 12 năm kinh nghiệm, hiện đang đảm nhận vai trò phát triển máy chủ và người phỏng vấn tại trụ sở chính của Kakao. Tôi sẽ giúp bạn chuẩn bị dựa trên các câu hỏi thực tế thường gặp trong các buổi phỏng vấn, bằng cách đưa những kinh nghiệm và lưu lượng truy cập lớn hơn nhiều so với các nền tảng thông thường vào bài giảng.
[Hiện tại] Nhà phát triển server · Người phỏng vấn tại trụ sở chính Kakao
Kinh nghiệm làm việc trong môi trường lưu lượng truy cập quy mô 500,000+ lượt mỗi giây
Tổng hợp các quan điểm và khái niệm dựa trên câu hỏi phỏng vấn thực tế
Nhận xét từ những người đã học trước đó
"Không chỉ là một coder, mà là một nhà phát triển thực thụ"
★★★★★
"Tôi nghĩ đây là một bài giảng cho bạn biết một nhà phát triển thực thụ khác với một người chỉ biết gõ code như thế nào, và một nhà phát triển Redis thực thụ cần phải biết những gì, từ việc không chỉ đơn thuần là nhập câu lệnh mà còn cả những điểm cần lưu ý trong môi trường hạ tầng cho đến góc nhìn về hash slot."
— Amy
★★★★★
"Nhân dịp Tết mình đã thử thanh toán để xem và học được nhiều hơn mong đợi. Đây mới thực sự là một nhà phát triển có thực lực... mình thấy hổ thẹn quá ㅠㅠ Cảm ơn bạn!"
— Nhà phát triển sinh năm 02
★★★★★
"Hầu hết thời gian là thực hành, nội dung thì ngắn gọn và thực tế. Đây là một bài giảng giúp bạn nắm vững kiến thức cơ bản bằng cách tập trung hoàn toàn vào Redis."
— warna
Khuyên dùng cho những đối tượng sau
Khóa học Redis này dành cho ai?
Nhà phát triển đang chuẩn bị nhảy việc/viết CV và muốn đối phó với các câu hỏi về Redis trong phỏng vấn Backend
Những nhà phát triển vốn chỉ sử dụng Redis cho mục đích cache và muốn mở rộng sang các lĩnh vực như session, queue, ranking.
Những nhà phát triển được bàn giao lại cấu hình Redis của dịch vụ đang vận hành mà thậm chí không biết ai là người đã thiết lập nó.
Những nhà phát triển cần đạt đến trình độ có thể giải thích được để review cho cấp dưới (junior) hoặc tham gia phỏng vấn kỹ thuật.
Ngược lại, nếu bạn có thể giải thích ngay lập tức sự khác biệt giữa Single, Replica, Sentinel, Cluster và các đánh đổi (Trade-off) tương ứng của chúng, thì bạn không cần đến khóa học này.
Câu hỏi thường gặp
Câu hỏi thường gặp về khóa học Redis
Redis là loại cơ sở dữ liệu nào?
Redis là một kho lưu trữ dữ liệu trong bộ nhớ (in-memory data store) mã nguồn mở, lưu trữ dữ liệu trong bộ nhớ thay vì trên đĩa cứng. Do đó, tốc độ đọc và ghi của nó cực kỳ nhanh, được sử dụng rộng rãi trong các vị trí quyết định tốc độ và tính ổn định của backend như bộ nhớ đệm (cache), phiên làm việc (session), bảng xếp hạng (leaderboard) và hàng đợi (queue). Quan điểm của bài giảng này là coi Redis không chỉ đơn thuần là một bộ nhớ đệm mà còn là một thành phần cốt lõi của dịch vụ.
Tại sao Redis lại nhanh?
Đó là vì dữ liệu được lưu trữ trong bộ nhớ (memory) thay vì đĩa cứng. Tuy nhiên, vì bộ nhớ có hạn và dữ liệu sẽ mất đi khi tiến trình dừng lại, nên bạn cần hiểu rõ các chiến lược lưu trữ bền vững như RDB·AOF cùng với các mô hình sử dụng bộ nhớ. Trong phần 4, chúng ta sẽ cùng thảo luận về sự đánh đổi (trade-off) này cùng với những lưu ý trong thực tế.
Môi trường thực hành được cấu hình như thế nào?
Chúng tôi sẽ tiến hành bằng cách trực tiếp khởi tạo môi trường Redis với Docker 28.0.0. Mã ví dụ được viết bằng JavaScript (Node.js v23.11.0) và được sắp xếp dựa trên macOS (M3). Bạn có thể thực hành toàn bộ tại môi trường local mà không cần thanh toán thêm bất kỳ dịch vụ đám mây trả phí nào.
Người mới bắt đầu học Redis có thể theo kịp bài giảng này không?
Vâng. Đây là bài giảng ở cấp độ nhập môn, chúng ta sẽ cùng điểm qua các khái niệm và thực hành từ các cấu trúc dữ liệu cơ bản như String·List·Set·Hash·Sorted Set. Chỉ cần bạn có kinh nghiệm lập trình cơ bản là đủ. Các cấu trúc dữ liệu cơ bản sẽ được hướng dẫn để ngay cả những người mới thấy lần đầu cũng có thể theo kịp, còn phần cấu hình môi trường và các mô hình sử dụng chuyên sâu ở nửa sau bài giảng sẽ là những nội dung mới mẻ ngay cả với những người đã có kinh nghiệm thực tế.
Single, Replica, Sentinel, Cluster, khi nào nên dùng cái nào?
Nội dung sẽ đề cập đến lý do tại sao mỗi cấu trúc lại ra đời và những đánh đổi (trade-off) của chúng là gì, dựa trên tiêu chí lựa chọn cho từng tình huống cụ thể. Mục tiêu không phải là học thuộc lòng các câu lệnh, mà là giúp bạn có thể tự mình giải thích được nên chọn cấu trúc nào trong môi trường lưu lượng truy cập thực tế.
Redis Sentinel và Cluster khác nhau như thế nào?
Mục đích của chúng khác nhau. Sentinel là cấu trúc dành cho tính sẵn sàng cao (High Availability), nó phát hiện lỗi của Master và tự động nâng cấp Replica lên thành Master mới. Dữ liệu vẫn chỉ là một bộ duy nhất. Cluster là cấu trúc dành cho việc mở rộng (Scaling), nó chia nhỏ dữ liệu thành các Hash Slot và lưu trữ trên nhiều node khác nhau. Nếu vấn đề là ứng phó với sự cố thì chọn Sentinel, còn nếu vấn đề là giới hạn bộ nhớ của một node đơn lẻ thì chọn Cluster.
Tôi đã đang sử dụng Redis trong thực tế rồi, liệu có lý do nào để nghe bài giảng này không?
Việc sử dụng câu lệnh và việc giải thích tại sao lại chọn cấu trúc đó là hai việc hoàn toàn khác nhau. Nếu bạn có thể trả lời ngay các câu hỏi trong phần BEFORE/AFTER ở trên, thì bạn không cần khóa học này. Nhưng nếu bạn cảm thấy bế tắc khi trả lời, thì đây chính là khóa học giúp bạn lấp đầy những khoảng trống đó.
Câu hỏi phỏng vấn Redis, tôi có thể chuẩn bị bằng bài giảng này không?
Vâng. Khóa học sẽ giải quyết các câu hỏi phỏng vấn thực tế như "Hãy giải thích các mô hình cấu hình môi trường Redis" xuất hiện trong phần BEFORE/AFTER ở trên, theo luồng trả lời tập trung vào lý do tại sao cấu trúc đó ra đời và những gì đã được đánh đổi. Mục tiêu là tạo ra câu trả lời có căn cứ rõ ràng thay vì chỉ là một danh sách học thuộc lòng.
Lộ trình bài giảng Redis được sắp xếp theo thứ tự nào vậy?
Bắt đầu với phần giới thiệu về Redis và tổng quan thiết kế môi trường Cluster, tiếp theo là học xen kẽ giữa lý thuyết và thực hành về các cấu trúc dữ liệu cơ bản, sau đó lần lượt là các lưu ý trong thực tế, tính bền vững (persistence), các mô hình sử dụng của chuyên gia và cấu hình môi trường. Thời hạn khóa học là vô hạn.
Không chỉ học câu lệnh, mà học cách phán đoán
Trở thành một nhà phát triển biết diễn giải và giải thích cùng một câu hỏi dưới nhiều góc nhìn khác nhau. Hãy thử đưa Redis trở thành cốt lõi trong dịch vụ của bạn.
Tôi đang vận hành một phòng chat mở dành cho các nhà phát triển để chia sẻ về sự nghiệp, tình hình thực tế trong công việc và kỹ thuật. Hãy thoải mái chia sẻ những thắc mắc khi nghe bài giảng hoặc những trăn trở trong công việc thực tế nhé.
Tôi bắt đầu học lập trình sau một thời gian dài lười biếng ở nhà và cảm thấy hứng thú với nó, hiện tại tôi đang đảm nhận việc phát triển máy chủ nền tảng (platform server) tại Pangyo. Tôi tiếp tục hoạt động với tư cách là người chia sẻ kiến thức vì muốn cung cấp cho các bạn phương pháp tôi đã học cũng như những vấn đề và giải pháp khác nhau mà các bạn có thể gặp phải trong thực tế.
Bài giảng không chỉ được tạo ra từ kiến thức của riêng tôi. Mọi bài giảng đều có sự đồng hành của những người cộng sự.
Chào bạn lsls ks, cảm ơn bạn đã để lại đánh giá tốt nhé!! Mình sẽ cố gắng cung cấp thêm nhiều nội dung hữu ích hơn nữa trong tương lai. Xin cảm ơn bạn!!
Mới xem được khoảng một nửa thôi mà đã giúp ích cho tôi rất nhiều rồi.
Tôi đang rất tận hưởng nội dung này vì bạn đã giải đáp một cách rõ ràng những điều mà tôi đang thắc mắc khi sử dụng Redis gần đây, xin cảm ơn bạn.
Vì đây là bài giảng đặc biệt nhân dịp Tết nên mình đã thanh toán và xem ngay lập tức!! Mình thường xuyên theo dõi các bài giảng của người chia sẻ, và lần nào cũng vậy, nội dung đều rất tuyệt vời và chỉ tập trung vào những điểm cốt lõi!!
Mình nghĩ bài giảng lần này cũng rất thực tế, giúp người học tiếp thu được nhiều nội dung và xây dựng nền tảng vững chắc.
1. Phần lớn thời lượng là thực hành.
- Giảng viên giải thích đầy đủ lý thuyết, nhưng phần thực hành không hề thiếu hụt mà ngược lại, mình thấy phần thực hành còn nhiều hơn cả lý thuyết.
2. Nội dung ngắn gọn và mang tính thực tiễn cao.
- Không có nội dung rườm rà, mình đã học được các phương pháp và mô hình sử dụng trong thực tế.
3. Tập trung hoàn toàn vào Redis.
- Đây có thể vừa là nhược điểm vừa là ưu điểm, nhưng nếu bạn chỉ muốn học về dịch vụ Redis thì mình nghĩ không có bài giảng nào tốt hơn bài này.
Mình sẽ rất mong chờ các bài giảng tiếp theo. Cảm ơn bạn đã tạo ra một bài giảng chất lượng như vậy!!
Chào bạn wrana, cảm ơn bạn rất nhiều vì đã để lại đánh giá đầy tâm huyết!! Đúng như những gì bạn đã chia sẻ, tôi đã cố gắng tiếp cận vấn đề từ góc nhìn thực tế và sát với chuyên môn nhất có thể, vì vậy mong bạn sẽ tiếp tục quan tâm và ủng hộ trong thời gian tới.
Dù hơi muộn nhưng chúc bạn một năm mới an khang thịnh vượng và dồi dào sức khỏe!! Xin cảm ơn bạn!
Chào bạn Dolgorae Chukje!! Cảm ơn bạn đã để lại đánh giá tốt nhé!! Sau này mình sẽ cung cấp thêm nhiều nội dung hữu ích hơn nữa!! Chúc bạn một ngày tốt lành nhé hihi