Memcached là một hệ thống lưu trữ dữ liệu tạm thời (cache) trong bộ nhớ RAM, thường được sử dụng để tăng hiệu suất của các ứng dụng web bằng cách giảm số lần truy cập cơ sở dữ liệu hoặc các nguồn dữ liệu chậm khác.


🔹 Tóm tắt Memcached là gì:

  • Lưu dữ liệu dạng key-value (giống như một bảng tra cứu).

  • Lưu trong RAM, nên rất nhanh.

  • Được dùng để cache:

    • Kết quả truy vấn cơ sở dữ liệu

    • HTML đã render

    • Session

    • Object serialized...


🔹 Ví dụ ứng dụng thực tế:

Giả sử website bạn có 1 bài viết được truy vấn hàng ngàn lần mỗi ngày. Thay vì truy vấn lại MySQL mỗi lần, bạn:

  • Lưu nội dung bài viết vào Memcached sau lần truy vấn đầu.

  • Những lần sau, bạn lấy từ Memcached, không cần truy vấn lại.


🔹 Lợi ích khi dùng Memcached:

Lợi ích Chi tiết
⚡ Tăng tốc Truy xuất RAM nhanh hơn nhiều so với truy vấn DB
📉 Giảm tải DB Giảm lượng truy vấn MySQL, PostgreSQL, v.v.
🌐 Hỗ trợ nhiều ngôn ngữ PHP, Python, Node.js, Java, Ruby, v.v.
🔁 Dễ mở rộng Có thể chạy nhiều instance Memcached để phân tải

🔹 Nhược điểm / Lưu ý:

  • RAM bị giới hạn ⇒ nếu full thì dữ liệu cũ bị ghi đè.

  • Dữ liệu không bền vững (bị mất khi restart Memcached).

  • Không phù hợp để lưu trữ dữ liệu lâu dài.

  • Chỉ lưu dữ liệu đơn giản dạng key → value.


🔹 Memcached khác Redis không?

Tiêu chí Memcached Redis
Cấu trúc dữ liệu Key-Value đơn giản Hỗ trợ nhiều loại dữ liệu: List, Set, Hash
Tốc độ Rất nhanh Nhanh
Lưu trữ lâu dài ❌ Không hỗ trợ ✅ Có thể lưu vào disk
Hỗ trợ tính năng cao ✅ Pub/Sub, Stream, Script Lua...

🧩 BƯỚC 1: Cài đặt Memcached

✅ Trên Ubuntu/Debian:

sudo apt update
sudo apt install memcached libmemcached-tools -y

✅ Kiểm tra Memcached đã chạy chưa:

sudo systemctl status memcached
Nếu chưa chạy:
sudo systemctl start memcached
sudo systemctl enable memcached

🔧 BƯỚC 2: Cài PHP extension để sử dụng Memcached

sudo apt install php-memcached -y
sudo systemctl restart php7.4-fpm  # Hoặc php8.x-fpm tùy bản PHP bạn đang dùng
Kiểm tra đã load extension chưa:
php -m | grep memcached

Nếu có dòng memcached là ok.

🧪 BƯỚC 3: Test kết nối Memcached trong PHP

Tạo file test-memcached.php:

<?php
$mem = new Memcached();
$mem->addServer("127.0.0.1", 11211);

// Lưu cache
$mem->set("foo", "Hello Memcached", 60);

// Lấy cache
echo $mem->get("foo");
?>

Truy cập trình duyệt: http://yourdomain.com/test-memcached.php
Nếu hiển thị Hello Memcached là thành công.

🔐 GHI CHÚ BẢO MẬT

  • Memcached mặc định lắng nghe 127.0.0.1 (nội bộ) → an toàn.

  • Nếu dùng cho nhiều server, cần cấu hình mở port và firewall cẩn thận, tránh bị chiếm quyền kiểm soát.

✅ Lệnh quản trị Memcached

Xem stats:

echo "stats settings" | nc localhost 11211
Xóa toàn bộ cache:
echo "flush_all" | nc localhost 11211