← Tất cả khoá học
🧱

Redis thực chiến

Cache, persistence, queue và pattern backend

Biên soạn bởi Nguyễn Anh Tuấn

Học Redis như một thành phần backend: cấu trúc dữ liệu trong RAM, TTL/cache, RDB/AOF, Pub/Sub, Streams, Lua atomic, replication, cluster và bối cảnh Redis/Valkey. Khoá học đi qua các pattern thường gặp như rate limiting, job queue, distributed lock và leaderboard.

10 bài ~236 phút Sắp ra mắt

Học xong mèo con làm được gì?

  • Dùng Redis như kho dữ liệu trong RAM, message broker và bộ đếm atomic - không chỉ là lớp cache.
  • Phân biệt cache tạm, data store có persistence và nguồn dữ liệu chính trong kiến trúc backend.
  • Cấu hình RDB/AOF đúng nhu cầu để giảm rủi ro mất dữ liệu khi Redis khởi động lại.
  • Hiểu replication, Sentinel và Cluster để vận hành Redis qua backup, failover và chia tải.
  • Tự dựng rate limiter, job queue bền, khoá phân tán và bảng xếp hạng thời gian thực bằng Redis.

Lộ trình học

  1. 1 Redis là gì? Lịch sử & kiến trúc Sắp ra mắt Redis là gì và điểm qua các hiểu lầm khoá này sẽ xoá bỏ (chỉ là cache, tắt máy là mất dữ liệu, hàng đợi kẹt trên một máy): Salvatore Sanfilippo (antirez) tạo ra năm 2009, tên viết tắt của Remote Dictionary Server, viết bằng C. Mô hình client-server, kho key-value trong RAM (in-memory), xử lý lệnh chính bằng event loop nên nhanh; nhắc bối cảnh license Redis 7/8 và Valkey; cài redis-server và gõ lệnh bằng redis-cli.
  2. 2 String, khoá & TTL Sắp ra mắt Kiểu String và vòng đời của khoá - nền tảng key-value: SET/GET/DEL, String là chuỗi byte an toàn nhị phân (binary-safe); đặt hạn sống với EXPIRE/TTL (đây mới đúng là phần "cache"); bộ đếm atomic INCR/DECR và mẫu đặt-nếu-chưa-có SET NX.
  3. 3 Hash, List & Set Sắp ra mắt Ba cấu trúc chủ lực: Hash lưu bản ghi nhiều trường như một đối tượng (HSET/HGET), List làm hàng đợi hai đầu và blocking pop (LPUSH/RPOP/BLPOP), Set lưu thành viên duy nhất cùng phép giao/hợp/hiệu (SADD/SINTER/SUNION) - chọn đúng cấu trúc cho từng việc.
  4. 4 Sorted Set & bảng xếp hạng Sắp ra mắt Sorted Set (ZSet) - cấu trúc đắt giá nhất của Redis: mỗi thành viên gắn một điểm số (score), ZADD/ZRANGE/ZRANK dựng bảng xếp hạng (leaderboard) và hàng đợi ưu tiên; skiplist dưới nắp; dùng ZSet làm rate limit theo cửa sổ trượt (sliding window).
  5. 5 Bitmap, HyperLogLog & Geospatial Sắp ra mắt Ba cấu trúc chuyên biệt tiết kiệm bộ nhớ đến khó tin: Bitmap (SETBIT/BITCOUNT) đếm người dùng hoạt động và cờ tính năng; HyperLogLog (PFADD/PFCOUNT) đếm phần tử duy nhất xấp xỉ chỉ tốn ~12KB cho hàng tỉ; Geospatial (GEOADD/GEOSEARCH) tìm điểm gần đây.
  6. 6 Atomic, giao dịch & Lua Sắp ra mắt Vì sao single-threaded nghĩa là mỗi lệnh đã atomic: giao dịch MULTI/EXEC và khoá lạc quan (optimistic lock) với WATCH; kịch bản Lua EVAL chạy nguyên khối không xen kẽ - nền tảng để viết rate limiter và khoá phân tán (distributed lock) đúng, không đọc-rồi-ghi hớ hênh.
  7. 7 Pub/Sub & Streams Sắp ra mắt Redis làm message broker: Pub/Sub phát tin thời gian thực kiểu bắn-rồi-quên (fire-and-forget) cùng giới hạn của nó (mất tin khi client offline); Streams (XADD/XREAD) là nhật ký bền có nhóm tiêu thụ (consumer group), giao ít nhất một lần (at-least-once) - giống một log nhỏ, nhưng không thay Kafka trong mọi bài toán. Khi nào dùng cái nào.
  8. 8 Bền vững & mở rộng Sắp ra mắt Xoá bỏ hai hiểu lầm lớn: "tắt máy là mất sạch" và "dữ liệu kẹt trên một máy". Bền vững bằng snapshot RDB và nhật ký ghi thêm AOF; chuyển dữ liệu và hàng đợi sang máy khác bằng dump/restore, lệnh MIGRATE và nhân bản primary/replica; Sentinel cho sẵn sàng cao (HA) và Cluster chia mảnh theo hash slot; chính sách trục xuất (eviction, LRU/LFU) khi đầy RAM - khi nào Redis là cache, khi nào là kho chính.
  9. 9 Pattern Redis thực chiến Sắp ra mắt Ghép mọi cấu trúc thành pattern thực chiến: cache-aside & write-through, chống thundering herd; khoá phân tán (Redlock) và tranh cãi quanh nó; giới hạn tần suất (rate limiting) bằng token bucket/sliding window; lưu session; và hàng đợi công việc bền (reliable queue) sống sót qua khởi động lại và chuyển máy chủ khi failover.
  10. 10 Dự án cuối khoá Sắp ra mắt Dự án cuối khoá - ghép mọi cấu trúc thành 3 hệ thống chạy được: một rate limiter cho API (Lua atomic), một bảng xếp hạng thời gian thực (Sorted Set), và một hàng đợi thông báo fan-out bằng Streams với consumer group.

🛠 Sắp bắt tay vào dự án thật?

Tên miền, VPS, hosting để đưa sản phẩm lên mạng - chọn ở trang Ưu đãi. Mua qua link là góp thêm “cá” 🐟 nuôi Mèo, bạn không tốn thêm.

Ưu đãi & công cụ →