1. Tổng quan nhanh
Tiêu chí | Redis | Memcached |
---|---|---|
Loại | In‑memory datastore với nhiều cấu trúc | In‑memory key–value store đơn giản |
Mô hình threading | Đơn luồng (single‑threaded) | Đa luồng (multi‑threaded) |
Kiểu dữ liệu | Strings, Lists, Sets, Hashes, Sorted Set,… | Chỉ key–value (binary-safe) |
Persistence | Có (RDB/AOF), có thể bật/tắt | Không (chỉ RAM) |
Replica/Cluster | Hỗ trợ replica, clustering, sharding | Chỉ sharding thủ công |
Pub/Sub, Lua | Có | Không |
2. Tốc độ và hiệu năng
- Memcached:
- Multi‑threaded, tận dụng nhiều lõi CPU, throughput rất cao với thao tác GET/SET đơn giản.
- Độ trễ trung bình: ~~0.1–0.5 ms trên workload chuẩn◆
- Redis:
- Single‑threaded nhưng tối ưu tốt, pipeline và I/O multiplexing giúp đạt >100 000 ops/sec trên phần cứng phổ thông◆.
- Hỗ trợ pipelining giảm RTT, Lua scripting giúp gom nhiều lệnh thành 1 lần gọi.
Khi so sánh trực tiếp, nếu chỉ GET/SET đơn giản, Memcached có thể nhỉnh hơn vài % throughput; nhưng Redis lại vượt trội khi sử dụng pipelining, batch hay các kiểu dữ liệu phức tạp.
3. Ưu – Nhược điểm
Redis
Ưu điểm
- Đa dạng cấu trúc dữ liệu: list, set, hash, sorted set… phù hợp nhiều use-case (caching, leaderboard, queue…).
- Persistence: RDB snapshot và AOF giúp lưu trữ, phục hồi dữ liệu khi restart.
- Replication & High‑Availability: hỗ trợ replica, Redis Sentinel, clustering.
- Pub/Sub & Streams: build hệ thống messaging hoặc streaming.
- Lua scripting & Transactions: đảm bảo atomic operation, giảm round‑trip.
Nhược điểm
- Single‑threaded: tiến trình chỉ chạy trên 1 core, khó tận dụng đa nhân cho mỗi instance.
- Bộ nhớ overhead: cấu trúc dữ liệu phong phú tiêu tốn bộ nhớ hơn Memcached.
- Phức tạp hơn: cấu hình nhiều tính năng, cần giám sát kỹ.
Memcached
Ưu điểm
- Đơn giản & nhẹ: chỉ key–value, footprint nhỏ, dễ triển khai.
- Multi‑threaded: tận dụng nhiều CPU core cho throughput cao.
- Memory‑efficient: overhead thấp, phù hợp cache thuần.
- Maturity & ecosystem: nhiều client, plugin, module hỗ trợ.
Nhược điểm
- Không persistence: mất sạch cache khi restart.
- Chỉ key–value: không có kiểu dữ liệu phức tạp.
- Không built‑in replication: phải xử lý sharding và HA thủ công.
4. Quy trình triển khai cơ bản
Triển khai Memcached
Cài đặt
sudo apt-get update sudo
apt-get install memcached
Cấu hình (/etc/memcached.conf
)
-m
: bộ nhớ (MB)
-p
: port (mặc định 11211)
-u
: user
-t
: số thread
Khởi động & giám sát
systemctl enable memcached
systemctl start memcached
Kiểm tra bằng memcached-tool
hoặc stats
command qua telnet.
Sharding: phân chia key qua client hoặc proxy (Twemproxy,…).
Triển khai Redis
Cài đặt
sudo apt-get update
sudo apt-get install redis-server
Cấu hình (/etc/redis/redis.conf
)
maxmemory
& maxmemory-policy
Bật persistence: save
(RDB), appendonly yes
(AOF)
Cấu hình replication: replicaof host port
Cấu hình clustering (nếu cần)
Khởi động & giám sát
systemctl enable redis-server
systemctl start redis-server
Dùng redis-cli info
để kiểm tra trạng thái, stats, replication.
Scaling
Replica: thêm Redis Slave.
Sentinel: cấu hình HA, tự failover.
Cluster: shard key tự động, có master‑slave.
5. Khi nào nên chọn Redis hay Memcached
Trường hợp sử dụng | Chọn Redis | Chọn Memcached |
---|---|---|
Chỉ cache đơn giản (GET/SET object) | ❌ | ✔ |
Cần cache với throughput cực cao, multi‑core | ❌ | ✔ |
Cần cấu trúc dữ liệu (queue, list, sorted set) | ✔ | ❌ |
Cần persistence / khôi phục cache sau reboot | ✔ | ❌ |
Cần pub/sub, messaging | ✔ | ❌ |
Cần high‑availability, auto‑failover | ✔ (Sentinel, Cluster) | ❌ (phải tự xây dựng) |
Muốn giải pháp đơn giản, footprint nhẹ | ❌ (nhiều config hơn) | ✔ |
Kết luận
- Nếu ứng dụng của bạn chỉ cần một cache key–value đơn giản, tối ưu throughput, dùng memory‑efficient, không cần persistence hay cấu trúc phức tạp → Memcached.
- Nếu bạn cần rich-data types, persistence, replication, pub/sub, scripting hoặc muốn mở rộng thành hệ thống distributed cache/queue → Redis.
Bài Viết Liên Quan
Giới thiệu đầy đủ về W3 Total Cache
Giới thiệu WP Super Cache
Giới thiệu về LiteSpeed Cache khi nào nên dùng LiteSpeed Cache
Giới thiệu về WP Rocket một cache tốt cho wordpress
Bộ nhớ đệm Memcached và Redis nên sử dụng bộ nhớ đệm nào?
Bộ nhớ đệm Memcached khi nào nên sử dụng Memcached cho website
Bài Viết Cùng thể loại
Giới thiệu đầy đủ về W3 Total Cache
Giới thiệu WP Super Cache
Giới thiệu về LiteSpeed Cache khi nào nên dùng LiteSpeed Cache
Giới thiệu về WP Rocket một cache tốt cho wordpress
Bộ nhớ đệm Memcached và Redis nên sử dụng bộ nhớ đệm nào?
Bộ nhớ đệm Memcached khi nào nên sử dụng Memcached cho website