[Đặc biệt Tết Trung thu] Lập trình viên Naver bật mí về Valkey: Chinh phục hoàn toàn 1 triệu++ TPS!
Khi chỉ Redis không còn đảm bảo được hiệu năng, chúng ta có những lựa chọn nào?? Có Valkey, tương thích 100% với Redis và được tối ưu dựa trên IO. Thông qua khóa học này, hãy cùng tìm hiểu cách Valkey đảm bảo hơn 1 triệu++ TPS, đồng thời học về các cấu trúc dữ liệu phù hợp với từng loại lưu lượng và cách triển khai tính năng.
Tôi gần như đã xem hết các bài giảng của thầy, nhưng lần nào xem cũng thấy thật đáng kinh ngạc. Không hiểu sao chủ đề lại đa dạng và nội dung bổ ích đến vậy...
Thật sự cảm ơn thầy vì lần nào cũng giúp đỡ tôi rất nhiều. Tôi định để đến Tết Trung thu rồi xem một lượt, nhưng vì bắt đầu xem thử từ trước Trung thu nên nội dung quá bổ ích, thành ra đã xem hết luôn rồi ;;ㅋㅋㅋㅋㅋ
Bạn sẽ nhận được điều này sau khi học.
Backend thương mại điện tử với bộ nhớ đệm, giỏ hàng, bảng xếp hạng, tồn kho và quy trình xử lý đơn hàng (dự án mini TypeScript)
Chiến lược bộ nhớ đệm: từ cache-aside đến vô hiệu hóa, phòng chống cache stampede và jitter TTL
Khả năng xử lý đồng thời để kiểm soát việc quản lý tồn kho và bán hàng bằng các thao tác nguyên tử, khóa phân tán và Lua
Tiêu chí phân biệt và lựa chọn giữa hàng đợi List, Pub/Sub và nhóm consumer của Stream
Thiết kế cơ chế lưu trữ bền vững, lựa chọn chính sách RDB·AOF·eviction phù hợp với từng tình huống
Khả năng chẩn đoán để phát hiện big key·hot key bằng SLOWLOG và bigkeys
Năng lực vận hành cấu hình failover tự động bằng tính năng sao chép và Sentinel
Mở rộng theo chiều ngang, bao quát việc xây dựng Cluster 6 node, resharding và hashtag
Phương pháp tinh chỉnh hiệu suất để xác định vị trí nút thắt bằng pipelining và phân luồng I/O
Đánh giá khi chuyển từ Redis sang Valkey (giấy phép, khả năng tương thích, khác biệt đo được)
VALKEY · CƠ SỞ DỮ LIỆU TRONG BỘ NHỚ
Valkey vs Redis : Chinh phục hoàn toàn 1 triệu TPS cùng nhà phát triển của Naver
Tái hiện chân thực những tình huống tôi đã trải qua trong 10 năm xây dựng hệ thống máy chủ tại Naver. Những khoảnh khắc như số lượng tồn kho hiển thị âm, hay cơ sở dữ liệu chao đảo khi bộ nhớ đệm hết hạn đồng loạt. Bạn sẽ xây dựng một hệ thống thương mại điện tử nhỏ, lần lượt học từ bộ nhớ đệm đến vận hành replication·Sentinel·cluster, và cuối cùng trực tiếp vượt mốc 1 triệu yêu cầu mỗi giây chỉ với một chiếc laptop.
1,331,558 RPS
Đây là số lượng yêu cầu mỗi giây được đo thực tế trên máy tính xách tay của giảng viên (Apple Silicon 8 lõi, Valkey 9.1), dựa trên lệnh GET. Kết quả này được ghi nhận trong điều kiện pipeline, gộp 16 lệnh mỗi lần; nếu điều kiện thay đổi, con số đôi khi giảm xuống còn 980.000. Những sai lệch đó cũng sẽ được trình bày nguyên vẹn trong khóa học. ('1 triệu TPS' trong tiêu đề khóa học là cách gọi chung cho thông lượng, còn nhãn đo thực tế được ghi là RPS.)
Biết các lệnh, nhưng vận hành lại là một câu chuyện khác hẳn
"Tôi biết SET, GET nhưng không biết cách sử dụng trong thực tế"Có nhiều khóa học chỉ liệt kê các lệnh, nhưng rất hiếm khóa học đề cập đến quy trình thực tế kết nối từ chiến lược bộ nhớ đệm, tính đồng thời đến pipeline sự kiện.
"Tồn kho đã bị âm nhưng tôi không biết nguyên nhân"Bạn sẽ không hiểu được sự cố đồng thời nếu chưa từng trải qua. Khóa học này cố tình tạo ra sự cố đó, quan sát bằng mắt rồi học cách ngăn chặn nó.
"Nếu máy chủ ngừng hoạt động thì dịch vụ cũng sẽ ngừng theo thôi"Tự xây dựng tính năng sao chép, tự động chuyển đổi khi xảy ra sự cố và sharding — những khía cạnh vận hành — bằng Docker, đồng thời trực tiếp tắt máy chủ để kiểm chứng.
WHY VALKEY
Tại sao lại là Valkey chứ không phải Redis?
CƠ SỞ DỮ LIỆU TRONG BỘ NHỚ
Valkey
9.1 · BSD · Linux Foundation
Valkey là cơ sở dữ liệu in-memory hoàn toàn mã nguồn mở do cộng đồng fork từ Redis ngay sau khi Redis thay đổi giấy phép vào năm 2024. Được AWS, Google và Oracle hỗ trợ dưới sự bảo trợ của Linux Foundation. Nếu hiện nay bạn mới học về cơ sở dữ liệu in-memory, bắt đầu tìm hiểu từ bước ngoặt này sẽ dễ nắm bắt hơn.
Valkey
Hoàn toàn mã nguồn mở (vẫn duy trì giấy phép BSD)
Trực thuộc Linux Foundation · được AWS, Google và Oracle hỗ trợ phát triển
Sau khi fork, tập trung đầu tư mạnh vào hiệu năng, chẳng hạn như thiết kế lại luồng I/O.
Được cung cấp trên AWS ElastiCache với chi phí thấp hơn so với công cụ Redis
Redis
Sau khi chuyển sang giấy phép thương mại vào năm 2024, một phần được mở lại vào năm 2025
Dự án gốc, hệ sinh thái tài liệu phong phú
Giao thức·lệnh tương thích với Valkey
Khóa học này được triển khai dựa trên Valkey, nhưng vì giao thức tương thích nên phần lớn nội dung học được cũng áp dụng nguyên vẹn cho Redis. Với những người đã từng sử dụng Redis, chúng tôi sẽ lần lượt chỉ ra "những điểm đã thay đổi ở Valkey" trong suốt khóa học.
Và thêm một điều nữa — tài liệu tiếng Hàn bao quát Valkey từ những bước đầu tiên đến vận hành vẫn chưa có nhiều. Học ngay bây giờ sẽ giúp bạn sở hữu một kiến thức mà ít người biết.
MEASURED, NOT CLAIMED
Tất cả các con số trong khóa học này đều là số liệu đo thực tế.
Tôi không chép lại các điểm chuẩn của nhà sản xuất. Tất cả các con số xuất hiện trong khóa học đều là kết quả do giảng viên trực tiếp chạy trên cùng một chiếc máy tính xách tay, và ngay cả những kết quả không như mong đợi cũng được trình bày nguyên vẹn, không cắt bỏ — bởi vì việc tìm hiểu tại sao kết quả không đạt mới là bài học quan trọng hơn.
46 so với 0
Lượng tồn kho biến mất khi 50 người đồng thời mua hàng (điều kiện tranh chấp) so với kết quả được ngăn chặn bằng phép toán nguyên tử
4,5 giây → BUSY
Cảnh một lệnh chậm khiến toàn bộ máy chủ bị đình trệ — tận mắt xác nhận việc xử lý đơn luồng
15 giây
Sau khi tắt master, cho đến khi Sentinel tự động bầu ra master mới
6,6 lần
Chênh lệch thông lượng chỉ do pipelining — bí mật của 1 triệu requests
Tôi cũng đưa nguyên kết quả đo thực tế theo hướng ngược lại. Khi tăng số luồng I/O lên 6, trên chiếc laptop của tôi, GET lại chậm hơn 12%. Vì sao lại như vậy, và con số 1 triệu thực sự được tạo ra bởi điều gì, tôi sẽ trực tiếp mổ xẻ ở phần cuối bài giảng.
WHAT ACTUALLY HAPPENS
Những cảnh xuất hiện các con số đó
Tôi đã chuyển bốn con số ở trên thành hình ảnh để minh họa chúng lần lượt xuất hiện trên màn hình nào. Trong bài giảng, tôi sẽ trực tiếp tái hiện những điều này trên terminal.
PHẦN 1
Đơn luồng — lệnh trước phải hoàn tất thì lệnh sau mới được thực hiện
EVAL
PING
BUSY
Valkey xử lý từng lệnh một. Trong khi tập lệnh Lua nặng đang chạy, lệnh PING vốn thường chỉ mất 7 mili giây đã phải chờ 4,5 giây. Nếu thời gian chiếm dụng vượt quá 5 giây, máy chủ sẽ trả về lỗi BUSY cho các máy khách tiếp theo.
PHẦN 5
Trạng thái tranh chấp — một yêu cầu khác chen vào giữa GET và SET
client A
GET → 50SET 49
client B
GET → 50SET 49
46
Số hàng tồn còn lại bằng GET·tính toán·SET
0
Nếu thay bằng một dòng DECRBY thì
Đã xử lý 50 yêu cầu nhưng chỉ ghi nhận trừ 4 mục. Đó là vì hai client đã đọc cùng một giá trị và ghi cùng một giá trị. Việc kết quả thay đổi thành 46 hoặc 47 mỗi lần thực thi là đặc trưng của tình trạng tranh chấp (race condition).
PHẦN 9
Sentinel — xử lý phán định sự cố và thăng cấp mà không cần con người
sentinel-1
sentinel-2
sentinel-3
master
Thăng cấp replica-2
Nếu phản hồi bị gián đoạn trong 5 giây (down-after), mỗi Sentinel sẽ đánh dấu là down theo chủ quan; khi đạt quorum 2, hệ thống sẽ xác nhận là down theo khách quan. Sau khi trực tiếp dừng tiến trình master, trong vòng 15 giây, master mới sẽ được thăng cấp.
MỤC 2 · 11
Nút thắt không nằm ở hiệu năng máy chủ mà ở số lần khứ hồi (round trip).
Từng cái một
128,534
gộp mỗi 10 cái
850,000
1,331,558
Trên một máy tính xách tay, RPS theo GET · p50 0.975ms
Giữ nguyên máy chủ và lệnh, chỉ gom các lượt khứ hồi thành từng nhóm 10, kết quả đã chênh lệch 6,6 lần (128,534 → 850,000). Ở phần cuối khóa học, khi tăng số lượng mỗi nhóm lên 16 và đồng nhất các điều kiện, con số này có thể đạt tới 1,33 triệu.
PREVIEW
Thay vì trăm lời giải thích, hãy trực tiếp xem thử.
Đây không phải là slide lý thuyết mà là màn hình terminal thực tế. Tôi đã cắt ngắn bốn cảnh được trực tiếp trình bày trong khóa học.
Dựng một cụm gồm 6 nút bấm.
Đây là cảnh khởi chạy các nút bằng compose và dùng --cluster create để chúng phân chia 16384 slot băm.
Trực tiếp xác định các key chậm.
Chúng ta theo dõi bằng --bigkeys và SLOWLOG để xác định khóa nào chiếm nhiều bộ nhớ và lệnh nào làm chậm phản hồi.
Kiểm tra xem dữ liệu có còn sau khi tắt rồi bật lại không.
Tạo snapshot bằng BGSAVE, bật appendonly rồi khởi động lại để tận mắt kiểm tra dữ liệu có thực sự tồn tại hay không.
Ngăn không cho tồn kho giảm xuống số âm.
Đăng tập lệnh Lua khấu trừ có điều kiện và thực thi bằng EVALSHA, xác nhận rằng ngay cả khi có các đơn hàng đồng thời cũng không xảy ra bán vượt quá số lượng tồn kho.
Vừa tái hiện trực tiếp những bằng chứng này vừa học hỏi.
Bốn cảnh vừa xem sẽ được tái hiện nguyên vẹn trong bài giảng.
HOW IT FLOWS
Khi sàn thương mại điện tử nhỏ phát triển, chúng ta học đúng những gì cần thiết.
Không học thuộc các cấu trúc dữ liệu theo thứ tự. Mỗi khi dịch vụ cần một tính năng, bạn sẽ lấy đúng công cụ ra sử dụng. Khi hoàn thành khóa học, bạn sẽ có trong tay một backend thương mại điện tử hoàn chỉnh, từ bộ nhớ đệm đến vận hành cụm máy chủ.
Trang sản phẩm chậmThêm bộ nhớ đệm — String, TTL, cache-aside, phòng chống stampede
Khách hàng thêm sản phẩm vào giỏGiỏ hàng và phiên — Hash, hết hạn trượt
Hãy hiển thị thứ hạng phổ biếnDanh sách yêu thích và bảng xếp hạng — Set, ZSet, HyperLogLog, Bitmap
Đơn hàng đổ dồn, hàng tồn kho biến mấtTái hiện sự cố đồng thời — thao tác nguyên tử, khóa phân tán, Lua
Xử lý sau đơn hàng bị dồn ứĐường ống sự kiện — hàng đợi List, Pub/Sub, nhóm consumer của Stream
Lệnh thành mãDự án mini TypeScript — CLI và mã tương ứng 1:1
Tắt rồi bật lại sẽ biến mấtTính bền vững và bộ nhớ — RDB, AOF, eviction, công cụ chẩn đoán
Nếu một máy chủ bị ngừng hoạt độngReplication và Sentinel — trực tiếp quan sát failover tự động
Nếu dữ liệu lớn hơn một máy chủCluster — hash slot, tái phân vùng, failover cụm
Cam kết cuối cùngSau khi chứng kiến kết quả đo thực tế cho thấy việc bật I/O threading lại khiến tốc độ chậm hơn, tìm ra nút thắt cổ chai thực sự và vượt mốc 1 triệu trên máy tính xách tay
WHY NOW
Bạn vẫn chỉ biết Redis thôi sao ?
Suy nghĩ của một người đã làm máy chủ tại Naver suốt 10 năm là thế này: Không phải là bạn không cần biết về Redis, mà là sau sự cố giấy phép năm 2024, cán cân đã hoàn toàn thay đổi. Nhìn vào những con số thì điều đó càng rõ ràng hơn.
1 tỷ RPS
Số yêu cầu mỗi giây mà Valkey 9 xử lý trong một cụm lớn gồm 2.000 node. Ngay cả một máy chủ đơn lẻ cũng đạt 2,1 triệu RPS.
15.000 máy chủ
Số lượng máy chủ mà Aiven đã chuyển từ Redis sang Valkey chỉ trong 3 tháng. Đây là cuộc di chuyển lớn nhất trong số các cuộc di chuyển được công khai.
45%
Chi phí cơ sở hạ tầng mà Amazon Ads đã cắt giảm khi chuyển sang Valkey. Ngược lại, thông lượng còn tăng 12%
27 nghìn
Lượt sao trên GitHub. Dự án có 1.300 fork và hơn 700 người đóng góp.
900만 lượt
Số lượt tải xuống image chính thức của Docker. Tính theo valkey/valkey.
AWS ElastiCache và Google Memorystore cung cấp Valkey làm mặc định cho các cụm mới. Gói bộ nhớ đệm mặc định của các bản phân phối Linux chính cũng là Valkey. Nếu muốn dùng Redis, giờ đây bạn phải chọn riêng.
Nhưng sau khi chuyển đổi xong thì việc vận hành cuối cùng vẫn do con người đảm nhiệm. Đó là thiết lập sao chép, kiểm tra failover và phân chia lại các slot. Khóa học này đề cập đến những phần đó.
Nguồn: Ghi chú phát hành Valkey 9.0·9.1 · AWS Database Blog (Valkey turns two, trường hợp Amazon Ads) · Trường hợp di chuyển của Aiven · GitHub valkey-io · Docker Hub valkey/valkey
WHAT YOU CAN CLAIM
Được viết nguyên văn vào portfolio và CV.
"Tôi đã sử dụng Redis" và "Tôi đã đưa tình trạng bán vượt quá số lượng từ 50 lượt mua đồng thời xuống còn 0" là hai câu khác nhau. Nếu muốn viết câu phía sau, bạn phải tự mình tạo ra sự cố và trực tiếp đo lường, và khóa học này chính là quá trình đó. Sáu dòng dưới đây có thể được sử dụng nguyên văn sau khi hoàn thành khóa học.
Viết trong CV như thế này
01Ngăn chặn tình trạng tải DB tăng vọt do cache stampede bằng TTL jitter và cơ chế giành quyền trước NXĐã tái hiện tình huống các thời điểm vô hiệu hóa trùng nhau và thiết kế chiến lược phòng vệ khi hai worker đồng thời cập nhật
02Cải thiện tình trạng bán vượt số lượng tồn kho phát sinh trong 50 lượt mua đồng thời xuống 0 bằng các phép toán nguyên tử và LuaTrước tiên, tái hiện trạng thái tranh chấp giữa GET·SET, xác nhận tồn kho bị sai lệch xuống còn 46, rồi ngăn chặn tình trạng này
03Triển khai khóa phân tán dựa trên token chủ sở hữu để ngăn sự cố tiến trình khác giải phóng khóaGiành quyền bằng SET NX PX và giải phóng nguyên tử bằng unlock.lua, đồng thời phân tích cả khả năng lấy khóa hai lần khi hết hạn và failover
04Cấu hình tự động failover dựa trên Sentinel và xác nhận việc thăng cấp trong vòng 15 giây khi master gặp sự cốTrực tiếp dừng process master, đồng thời quan sát giai đoạn tạm thời xuất hiện hai master cũng như quá trình hạ cấp và bắt kịp
05Xây dựng Cluster 6 nút và giải quyết CROSSSLOT bằng resharding trực tuyến cùng hashtagTrực tiếp thực hiện mọi việc từ phân bổ 16384 hash slot, di chuyển slot không gián đoạn cho đến failover của cluster
06Cải thiện thông lượng gấp 6,6 lần bằng pipelining và xác định rằng nút thắt nằm ở thời gian khứ hồiĐồng thời đo lường cả những trường hợp tăng số luồng I/O lại khiến tốc độ giảm 12%, để lại bằng chứng về đâu mới là nút thắt thực sự
Cả sáu mục đều là những thứ bạn trực tiếp xây dựng và đo lường trong khóa học này. Ngay cả khi được hỏi trong buổi phỏng vấn rằng "Vậy bạn đã xác nhận như thế nào?", bạn vẫn có câu trả lời để đưa ra.
Khi khóa học kết thúc, bạn sẽ có một kho lưu trữ backend thương mại điện tử, và nó sẽ trở thành portfolio của bạn.
WHO & WHAT
Phù hợp với những người sau đây
Lập trình viên backend và người đang chuẩn bị xin việc lần đầu học cơ sở dữ liệu in-memory (không yêu cầu kiến thức nền tảng)
Dành cho những ai mới chỉ sử dụng Redis ở mức lệnh và muốn mở rộng sang chiến lược bộ nhớ đệm, tính đồng thời và vận hành.
Những người đang cân nhắc chuyển sang Valkey sau các vấn đề về giấy phép của Redis
Dành cho những ai muốn tự tay xây dựng replication, failover và cluster.
Chuẩn bị: macOS (khuyến nghị Apple Silicon) + Homebrew. Chỉ sử dụng Docker Desktop trong phần thực hành sao chép và cụm ở nửa sau. Trước đó, chỉ cần một terminal là đủ. Phần thực hành bắt đầu với valkey-cli, tiếp tục với ứng dụng khách TypeScript iovalkey, và trực tiếp đo thông lượng bằng valkey-benchmark.
INSTRUCTOR
Giới thiệu giảng viên
Được thực hiện cùng Ande, nhà phát triển backend 10 năm kinh nghiệm tại trụ sở Naver, và Hong, nhà phát triển máy chủ nền tảng tại Pangyo.
NAVER · KỸ SƯ BACKEND · 10 năm kinh nghiệm
Ande
Tôi là một lập trình viên backend có 10 năm kinh nghiệm, hiện đang phát triển máy chủ tại trụ sở chính của NAVER. Những sự cố như hàng tồn kho hiển thị số âm, hay tình huống cơ sở dữ liệu chao đảo khi bộ nhớ đệm hết hạn cùng lúc — phần lớn các cảnh được tái hiện và trình bày trong khóa học đều là những vấn đề tôi từng thực sự gặp phải trong công việc. Hãy thoải mái để lại câu hỏi, tôi sẽ kiểm tra và trả lời trong khả năng tốt nhất.
Tôi không chỉ cho bạn thấy những con số đẹp. Bởi vì chúng ta học được nhiều hơn từ những con số không như mong đợi.
Hiện là nhà phát triển máy chủ tại Naver (trụ sở chính) · Từng là nhà phát triển backend tại Tập đoàn Shinsegae · Từng là nhà phát triển máy chủ tại một startup chăm sóc sức khỏe · Tốt nghiệp chuyên ngành Khoa học máy tính tại một trường đại học 4 năm ở Seoul
lưu lượng truy cập lớnkiến trúc backendbộ nhớ đệm trong RAMxử lý sự cố
Người chia sẻ kiến thức · Phát triển máy chủ nền tảng tại Pangyo
Hong
Tôi đang phụ trách phát triển máy chủ nền tảng tại Pangyo. Tôi tiếp tục hoạt động chia sẻ kiến thức để chia sẻ những phương pháp tự học cũng như các vấn đề và giải pháp gặp phải trong thực tế. Trong khóa học này, tôi đã xây dựng chương trình học và đảm nhiệm việc quay hình.
Tôi phải bắt đầu bằng việc giải thích tại sao những người chỉ biết Redis lại nên tìm hiểu Valkey. Tôi đã đưa nguyên trình tự đó vào bài giảng.
Hiện là lập trình viên phát triển máy chủ nền tảng tại Pangyo · Trước đây là lập trình viên backend blockchain và metaverse · Người chia sẻ kiến thức trên Inflearn
Thiết kế chương trình họcNhiều khóa học backendMáy chủ nền tảng
MESSAGES
Vì vậy, Hong, liệu điều đó có thực sự hữu ích không?
Tôi đã học xong toàn bộ khóa học, cảm ơn bạn vì khóa học tuyệt vờiTin nhắn bạn để lại trong phòng trò chuyện mở sau khi hoàn thành khóa họcNhờ khóa học, tôi đã nhận được rất nhiều sự giúp đỡ và được nhận vào công tyTin vui đỗ tuyển được bạn chia sẻ trong phòng trò chuyện mở
Những lúc nhận được những lời nhắn như thế này chính là lý do tôi tiếp tục xây dựng các khóa học. Hy vọng khóa học lần này cũng sẽ trở thành một dòng nhắn như vậy.
FAQ
Câu hỏi thường gặp
Valkey là gì? Có quan hệ gì với Redis?
Valkey là một cơ sở dữ liệu khóa-giá trị trong bộ nhớ hoàn toàn mã nguồn mở (BSD) được cộng đồng fork từ Redis 7.2 sau khi Redis thay đổi giấy phép vào năm 2024. Valkey được hỗ trợ bởi AWS, Google và Oracle dưới sự bảo trợ của Linux Foundation, đồng thời tương thích với giao thức Redis. Trong video đầu tiên của khóa học, chúng tôi sẽ kể lại bối cảnh ra đời này một cách sinh động.
Công ty tôi vẫn đang dùng Redis, vậy thì việc này có còn ý nghĩa không?
Có. Valkey và Redis tương thích với nhau về giao thức và câu lệnh, nên kiến thức về chiến lược bộ nhớ đệm, xử lý đồng thời, sao chép, vận hành Sentinel và cụm máy chủ học trong khóa học cũng được áp dụng nguyên vẹn cho môi trường Redis. Ngược lại, khóa học cũng đề cập đến bối cảnh giấy phép và những khác biệt qua đo đạc thực tế, giúp làm cơ sở đánh giá khi công ty cân nhắc chuyển sang Valkey.
Mức độ khó ở mức nào? Có cần xem hết từ đầu không?
Phần đầu là nội dung có thể theo dõi mà không cần kiến thức nền, còn phần sau đi sâu vào vận hành như tính bền vững dữ liệu, sao chép, cluster và hiệu năng. Vì khóa học được xây dựng theo cấu trúc tiếp tục phát triển một dịch vụ thương mại điện tử, chúng tôi khuyến nghị bạn xem từ đầu; tuy nhiên, nếu đã có kinh nghiệm với Redis, bạn có thể chọn xem từ phần xử lý đồng thời hoặc các nội dung chuyên sâu về vận hành. Nội dung của từng video được ghi rõ trong danh sách chương trình học bên dưới.
Không biết Redis cũng được chứ?
Được. Khóa học được thiết kế để bạn có thể bắt đầu mà không cần kiến thức nền tảng. Ngược lại, nếu đã có kinh nghiệm với Redis, gần như toàn bộ những gì bạn biết vẫn được áp dụng, đồng thời trong suốt khóa học, chúng tôi sẽ lần lượt chỉ ra những điểm khác biệt trong Valkey (cải thiện giá trị mặc định và các tính năng mới).
Bạn có thể thực hành trên Windows không?
Khóa học được thực hiện trên macOS + Homebrew. Windows có giao diện và quy trình cài đặt khác nên không được hỗ trợ chính thức.
Thực sự có đạt được 1 triệu TPS không?
Trên máy tính xách tay của giảng viên (Apple Silicon 8 lõi), chúng tôi đã đo thực tế 1,331,558 RPS đối với GET, trong điều kiện pipeline nhóm 16 lệnh mỗi lần. Chúng tôi sẽ trình bày nguyên vẹn cảnh chạy và các lệnh đó trong bài giảng. Ngay cả trong cùng điều kiện, tốc độ có khi giảm xuống còn 980.000 mỗi lần chạy, và chúng tôi cũng công khai kết quả đo thực tế cho thấy việc bật luồng I/O thậm chí còn khiến tốc độ chậm hơn. Xin lưu ý, “TPS” trong tiêu đề bài giảng là cách gọi chung cho thông lượng, còn nhãn đo thực tế trên trang được ghi là RPS theo GET.
Ngay cả khi không giỏi lập trình, tôi có thể theo kịp không?
Hai phần ba khóa học là thực hành lệnh terminal nên hầu như không cần kinh nghiệm lập trình. TypeScript được tập trung ở một phần duy nhất (dự án mini), và chúng tôi sẽ tiến hành bằng cách giải thích từng dòng mã.
Bạn sử dụng phiên bản nào?
Dựa trên Valkey 9.1. Tất cả lệnh và cấu hình trong khóa học đều đã được trực tiếp thực thi và kiểm chứng trên phiên bản này.
Hãy tự tay tắt máy chủ và trực tiếp vượt qua con số 1 triệu.
Đây không phải là khóa học ghi nhớ các lệnh, mà là khóa học giải quyết từng vấn đề phát sinh khi dịch vụ phát triển. Khi kết thúc khóa học, bạn sẽ ở trạng thái đã thử ngăn sự cố tồn kho bằng các phép toán nguyên tử, trực tiếp tắt rồi khởi động lại máy chủ chính, và dựng một cụm gồm sáu nút.
COMMUNITY
Bạn không cần phải học một mình.
Những phần vướng mắc trong quá trình học, trăn trở về sự nghiệp, câu chuyện thực tế trong ngành — hãy cùng chia sẻ trong phòng chat mở nơi các lập trình viên tụ họp. Các câu hỏi về bài giảng cũng luôn được hoan nghênh.
Sự nghiệp · chuyển việcBackend thực tếHỏi & Đáp kỹ thuậtHọc nhóm
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ự.