Redis: Zero to Hero
Sê-ri 40 phần về Redis, mỗi phần một phép đo chạy được trên Docker.
19/40 phần đã đăng
Cơ sở dữ liệu
1
Redis là gì và không là gì
Redis nhanh hơn PostgreSQL 4,1 lần khi ghi — không phải 100 lần. Và phần lớn khoảng cách đó là độ bền, không phải kiến trúc.
01/09/2026
· 5 phút đọc
2
Một luồng mà nhanh
Một kết nối duy nhất đi từ 25.850 lên 1.136.364 ops/s mà không đổi gì trong Redis. Nút thắt không phải CPU.
01/09/2026
· 6 phút đọc
3
Chuỗi và bộ nhớ thật
Cùng một chuỗi 1024 byte tốn 1.328 hay 2.608 byte tuỳ cách bạn ghi nó vào. Chênh 96%.
01/09/2026
· 6 phút đọc
4
Hash, List, Set, Sorted Set
Tập 512 số nguyên tốn 2,6 byte mỗi số. Thêm một phần tử nữa là 48,2 — gấp 18,6 lần.
01/09/2026
· 5 phút đọc
5
Mã hoá nội bộ
Cùng 199 trường, cùng dữ liệu: 1.840 byte hay 16.256 byte, tuỳ khoá đó từng lớn tới đâu.
01/09/2026
· 5 phút đọc
6
Bitmap và HyperLogLog
Đếm một triệu phần tử khác nhau bằng 14.384 byte, sai số 0,12%. Và PFADD còn nhanh hơn SADD.
01/09/2026
· 5 phút đọc
7
Stream
Một tiêu thụ quên XACK làm bộ nhớ phình 19,7 lần — và cắt bớt stream không cứu được.
01/09/2026
· 6 phút đọc
8
Hạn dùng khoá
SET xoá mất TTL nhưng APPEND thì không. Và Redis dọn 100.000 khoá hết hạn trong dưới một giây.
01/09/2026
· 5 phút đọc
9
Chính sách loại bỏ
volatile-lru khi không khoá nào có TTL chính là noeviction. Và LRU của Redis chỉ hơn random một chút.
01/09/2026
· 6 phút đọc
10
Phân mảnh bộ nhớ
Xoá 270.000 khoá mà RSS không giảm một byte. Và bật activedefrag xong vẫn không có gì xảy ra.
01/09/2026
· 6 phút đọc
11
Lệnh chậm làm nghẽn cả máy chủ
Một lệnh KEYS đẩy độ trễ PING từ 1 ms lên 263 ms. Và DEL còn tệ hơn KEYS.
01/09/2026
· 6 phút đọc
12
Pipeline
Đường ống 10.000 cho 47,9 lần thông lượng. Đường ống 100.000 thì tụt còn một nửa.
01/09/2026
· 5 phút đọc
13
Giao dịch MULTI/EXEC
Lệnh lỗi giữa giao dịch không làm huỷ gì cả — các lệnh khác vẫn chạy và vẫn giữ kết quả.
01/09/2026
· 5 phút đọc
14
Lua script
Script chạy 3 giây thì mọi khách hàng khác chờ đúng 3 giây. Và bộ nhớ cache script không bao giờ tự dọn.
01/09/2026
· 6 phút đọc
15
Functions
Khởi động lại Redis: script biến mất, function còn nguyên. Nhưng tốc độ thì y hệt nhau.
01/09/2026
· 5 phút đọc
16
Pub/Sub
50 bản tin gửi trong lúc thuê bao mất kết nối: nhận lại được 0. Và thuê bao đọc chậm thì bị Redis ngắt.
01/09/2026
· 6 phút đọc
17
Danh sách chờ và hàng đợi
BLPOP nhận việc sau 0,3 ms; vòng lặp hỏi mỗi 100 ms mất 50,6 ms và tốn gấp 10 lần số lệnh.
01/09/2026
· 5 phút đọc
18
RDB
Ghi đè 7 triệu khoá trong lúc chụp làm copy-on-write nhảy từ 1,4 MB lên 87 MB — mà INFO memory không thấy gì.
01/09/2026
· 5 phút đọc
19
AOF
Giết Redis bằng SIGKILL với appendfsync no: mất 0 bản ghi. Lặp ba lần đều vậy.
01/09/2026
· 6 phút đọc
Còn 21 phần nữa sẽ lần lượt được đăng.