Giới thiệu
Distributed Cache là hệ thống cache trong memory nhẹ, được xây dựng từ đầu bằng TypeScript. Dự án minh họa các khái niệm cốt lõi được sử dụng trong các cache production như Redis, Memcached và Amazon DynamoDB.
Nó là gì?
Client → Consistent Hashing → Cache Node (RAM)
├── Node 0: keys A-F
├── Node 1: keys G-M
└── Node 2: keys N-ZDistributed cache lưu dữ liệu được truy cập thường xuyên trong bộ nhớ (RAM) thay vì đọc từ database mỗi lần. Điều này giúp đọc nhanh hơn 100-5000 lần.
Tính năng
| Tính năng | Mô tả |
|---|---|
| Consistent Hashing | Phân phối dữ liệu đều với minimal redistribution |
| Eviction (LRU/LFU/FIFO) | Tự động xóa entries cũ khi cache đầy |
| TTL (Time To Live) | Tự hết hạn entries sau thời gian thiết lập |
| Replication | Sao chép dữ liệu sang backup nodes để chống lỗi |
| Cache Invalidation | Xóa cache theo wildcard khi dữ liệu gốc thay đổi |
| Cluster Management | Leader election + failover tự động |
| TCP Protocol | Giao tiếp mạng latency thấp |
| Persistence | Lưu trữ file tùy chọn |
Hiệu suất
Throughput: 120,000+ ops/sec (in-memory)
Latency: <0.01ms avg, <0.03ms p99
Distribution: 36/35/29% trên 3 nodes (đều)Khi nào sử dụng?
Học distributed systems:
- Hiểu Redis/Memcached hoạt động bên trong thế nào
- Học consistent hashing, replication và eviction
Xây dựng e-commerce apps:
- Cache danh sách sản phẩm, user sessions, giỏ hàng
- Tích hợp với Medusa.js (benchmark thực: 120K ops/sec)