Bộ nhớ đệm Memcached (Mem-Cache-D) là hệ thống phân phối và lưu trữ bộ nhớ đệm (cache) chứa dữ liệu trên RAM. Memcached là một mã nguồn mở và Không mất phí Chủ yếu sử dụng để làm bộ nhớ đệm nhằm tăng tốc các áp dụng web.
Nội dung chung về bộ nhớ đệm Memcached

Bộ nhớ đệm Memcached Logo


- Người tăng trưởng ban đầu : Danga Interactive
- Ngày phát hành đầu tiên : Ngày 22 tháng 5, năm 2003
- Ngôn ngữ lập trình : C
- Operating system Cross-platform
- Thể loại : Distributed Memory Caching System
- Bản quyền : Revised BSD license
Ưu điểm của Memcached
- Memcached sử dụng RAM làm nơi lưu giữ dữ liệu nên có tốc độ truy tìm rất nhanh
- Memcached có thể mở rộng bằng cách liên kết nhiều server thành cụm.
- Memcached dùng cấu trúc lưu trữ đơn giản key => value có thể việc dùng và xử lý rất nhanh.
- Memcached có khả năng sử dụng để lưu trữ dữ liệu SESSION cho PHP với chu trình cấu hình giản đơn.
Nhược điểm của Memcached
- Dùng RAM để lưu trữ dữ liệu nên tiền bạc sử dụng tương đối cao.
- Nếu như dùng Memcached trên Server/VPS khác có khả năng gây tác dụng ngược về hiệu suất.
>>>Xem thêm: Mã UTM code là gì? Cách đo lường hiệu quả chiến dịch quảng cáo
Khi nào có thể sử dụng Memcached

Khi ứng dụng website của bạn có lượng kết nối cao và bạn có thể đầu tư RAM cho Server, vì trong hoàn cảnh dùng Memcached trên Server/VPS có RAM thấp có khả năng gây tác dụng ngược làm áp dụng web chậm hơn.
Memcached & Redis: nên dùng cái nào?

Điểm giống nhau
Redis và Memcached đều là các hệ thống lưu trữ dữ liệu trong bộ nhớ. Memcached là một dịch vụ lưu trữ bộ nhớ đệm phi tập trung với tốc độ cao, còn Redis là một bộ nhớ theo dạng key-value. Giống như Memcached, Redis có thể lưu giữ được đa phần tất cả các loại dữ liệu trong bộ nhớ và có thể thực hiện các phép toán với nhiều kiểu dữ liệu (ví dụ như string, hash table, linked list, …).
Cả hai công cụ này đều rất nhanh và hữu dụng khi được sử dụng làm bộ nhớ đệm, làm tăng tốc áp dụng web bằng việc cache các câu query, HTML hoặc bất cứ thứ gì có thể cache được.
Khác biệt về bản chất
Theo định nghĩa trên trang chủ của Redis:
Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes with radius queries and streams.
khái niệm của Memcached:
Free & open source, high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic website applications by alleviating database load.
Memcached is an in-memory key-value store for small chunks of arbitrary data (strings, objects) from results of database calls, API calls, or page rendering.
Qua hai định nghĩa trên ta thấy, Redis được dùng như là một database (used as database) trong khi đấy Memcached là một hệ thống lưu trữ bộ nhớ đệm (memory caching system). Để hiểu một cách rõ ràng hơn sự sai biệt này ta sẽ so sánh trên các phương diện chính sau:
- Server-end data operations (các phép toán cho dữ liệu ở phía server)
- Memory usage efficiency (Mức độ đạt kết quả tốt trong cách dùng bộ nhớ)
- Performance comparison (So sánh hiệu năng)
- Read/write speed (Tốc độ đọc/ghi)
- Disk I/O dumping (Backup dữ liệu)
Server-end data operations
Redis hỗ trợ các phép toán cho dữ liệu ở phía server, biết nhiều kiểu dữ liệu và nhiều phép toán hơn Memcached. Vì lẽ đó nếu bạn muốn bộ máy của mình có thể cache được tuy nhiên cấu trúc dữ liệu khó khăn thì Redis sẽ là một xác định tốt hơn.
Memory usage efficiency
Memcached sử dụng tốt hơn với kiểu dữ liệu dạng key-value dễ dàng. tuy vậy, nếu như dùng Redis với các cấu trúc dạng hash thì sẽ hiệu quả hơn Memcached do nó được thiết kế để lưu giữ những kiểu dữ liệu phức tạp như vậy.
Performance comparison
Redis chỉ dùng duy nhất một core trong khi Memcached được tốt nhất để dùng nhiều core. Vì lẽ đó Redis sẽ có hiệu suất tốt hơn Memcached khi so sánh lượng dữ liệu trên một core. Tuy nhiên, Memcached lại tốt hơn Redis nếu so sánh lượng dữ liệu tổng thể. Mặc dù Redis đã có cơ chế để tối ưu cho dữ liệu lớn nhưng vẫn kém hơn so với Memcached.
Read/write speed
Cả hai đều cực kỳ nhanh. Mặc dù có vô số yếu tố tác động như khối lượng dữ liệu, phiên bản nhưng thường thường thì Redis nhanh gần bằng Memcached.
Disk I/O dumping
Redis có cơ chế mặc định backup dữ liệu vào disk trong thời gian Memcached không hề có cơ chế này nếu như không sử dụng tool giúp đỡ.
>>>Xem thêm: Top những ngôn ngữ lập trình web phổ biến nhất hiện nay
Tóm lại
Memcached là một cached server dễ dàng, cho phép bạn lưu trữ cặp key-value với dữ liệu nhỏ hơn 1MB. Nó hoạt động cực kì tốt tuy nhiên đó là toàn bộ những gì mà nó có khả năng thực hiện được. Khi bạn restart lại thì dữ liệu sẽ bị mất, vì vậy Memcached cực kì phù hợp với những dự án chỉ cần cache những dữ liệu dễ dàng, nhẹ, và không đặc biệt. Ngoài ra, vẫn có các tool, product, service của bên thứ ba để thêm các chức năng thiết yếu.
Bài viết trên, mình đã chia sẻ tới các bạn tổng quan về bộ nhớ đệm Memcached. Cảm ơn các bạn đã theo dõi bài viết nhé!
>>Xem thêm: Tổng hợp các loại mã nguồn làm web phổ biến nhất hiện nay
Mỹ Phượng-Tổng hợp
Tham khảo: (viblo, xtraffic,…)