so sánh memcached với redis
so sánh memcached với redis

Nếu nhắc tới Cache thì không thể không nhắc tới Memcached. Tuy nhiên những năm gần đây Redis nổi lên như làn sóng mới. Vì vậy mình xin giới thiệu những vấn đề cơ bản sự khác nhau giữa 2 bộ cache này.

Ví dụ nếu làm 1 site mà bạn có nhiều form hoặc select… thì Redis là mộ giải pháp tuyệt vời. Tuy nhiên nếu bạn cần những chức năng cơ bản thì Memcached đã là quá đủ. Sau đây là bảng so sánh giữa Memcached và Redis

I. Memcached

  • Memcached thì đơn giản nhất, chỉ có dạng key-value, tất cả dữ liệu lưu trong RAM.
  • Lưu ý là Memcached chỉ là tầng cache, ko có tính persistent, tức là khó backup dữ liệu, và dữ liệu có thể mất (cái này là tỉ lệ eviction/reclaim xảy ra khi full bộ nhớ, memcached dùng thuật toán đẩy các key ít dùng hoặc key cũ nhất ra).
  • Ngoài ra memcached còn có khái niệm slab, chunk, chunk grow factor, CAS v.v.

II. Redis

  • Redis thì phức tạp hơn, có nhiều kiểu dữ liệu string, hashes, sets, sorted sets, transaction, pub/sub v.v.và hình như còn cho phép scripting theo ngôn ngữ LUA (cái này mình chưa nghiên cứu).
  • Kiểu string thì giống hết memcached, tức là key-value. Các kiểu kia có đặc trưng khác nhau. Kiểu string cho phép đặt expire time, nếu ko đặt thì key đó sẽ tồn tại mãi mãi. Redis giống memcached là memory-mapped, tức là tất cả dữ liệu đc đẩy hết vào RAM (có cách để đẩy vào swap), và cho phép theo một khoảng thời gian thì lưu một bản dump của tất cả dữ liệu vào 1 file.
  • Redis hơn memcached ở một điểm nữa là cho phép replication. Nhưng kém memcached một điểm là hay bị dùng rất nhiều RAM. Dữ liệu ở file dump tầm khoảng 1GB, nhưng map vào RAM lên tầm 2GB
  • Vậy bạn đang sử dụng loại cache nào. Hãy để lại bình luận để mọi người cùng chia sẻ nha!