memcached là gì
memcached là gì

I. Memcached là gì?

Memcached  là một hệ thống lưu trữ bản sao các đối tượng (objects) và dữ liệu được truy cập nhiều lần để tăng tốc độc truy xuất. Mục đích chính của nó là để tăng tốc độ ứng dụng web bằng cách truy vấn cơ sở dữ liệu bộ nhớ đệm, nội dung, hoặc kết quả tính toán khác.

Memcached là ban đầu là một ứng dụng Linux, nhưng vì Memcached là mã nguồn mở nên đã được các nhà lập trình phát triển cho nền tảng Windows sử dụng.

Nguyên lý hoạt động memcached
Nguyên lý hoạt động memcached

II. Nguyên lý hoạt động memcached

  1. Request đầu tiên: truy cập vào CSDL thì server sẽ trả lại kết quả cho
    • User như thông thường hiện nay
    • Và kèm thêm một việc là trả dữ liệu vào memcached.
  2. Các request lần sau:
    • Truy cập nó sẽ không yêu cầu server làm việc nữa thay vào đó nó sẻ đưa từ memcached trả lại cho user
    • Việc đó sẽ giúp giảm thiểu 1 lượng lớn công việc mà server cần làm việc. Giúp website của bạn chạy nhanh hơn khoảng 70%

III. Ưu Nhược Điểm Của Memcached

1. Ưu Điểm Memcached

  • Ở mức nhỏ người ta thường dùng memcached để làm nơi lưu trữ dữ liệu chia sẻ, thường là lưu session. Cái này rất tiện lợi nhất là trong các kiểu loadbalancing đơn giản như nginx hay pound, khỏi phải lo tới vấn đề persistence session.
  • Ở mức lớn hơn một chút, người ta dùng memcached để giảm thiểu read từ db, cho những dữ liệu ít thay đổi và cần tính toán, query phức tạp, tốn tài nguyên.
  • Các thể cài đặt trên môi trường: Windows, Linux

2. Nhược Điểm Memcached

  • Memcached không có cơ chế thẩm định tính chính xác của dữ liệu lưu trong nó. Điều này có thể thấy quá cấu trúc hệ thống (memcached không có bất cứ sự liên hệ nào với db, mà nằm độc lập).
  • Muốn dùng thì phải cài memcached vào máy chủ.
  • Chưa đồng bộ tự động với dữ liệu database khi dữ liệu thay đổi. Ví dụ: Database có dữ liệu là A và Memcached cũng có dữ liệu là A. Lúc database đổi giá trị sang B nhưng memcached vẫn là A. Các bạn có thể tham khảo giảm pháp sử dụng Sqlcachedependency

Nếu bạn cần kham khảo cách cài đặt Memcached trên Linux (CentOS) các bạn có thể kham khảo tại đây

Cảm ơn các bạn đã theo dõi Blog của mình. Nếu bạn nào có thắc mắc gì về Memcached các bạn hãy để lại bình luận. Mình sẽ giải đáp ngay khi có thể.