Memcached? Ưu, nhược điểm của Memcached

1 min read

Memcached là gì?

Memcached là hệ thống lưu trữ bộ nhớ phân tán dùng mã nguồn mở đặc biệt. Dữ liệu hệ thống được lưu trữ dưới dạng thức key-value trong đó các thông tin được lưu trữ chính là bản sao của các đối tượng, dữ liệu được truy cập nhiều lần.

Overview

  • Một dạng cache key-value
  • Độ trễ cỡ milisecond
  • Có thể được dùng để cache
    • Session
    • Kết quả query từ DB
    • Webpage
    • API
    • Images/file/metadata

Cấu trúc

  • CHỈ CÓ THỂ được access từ EC2
  • KHÔNG có khái niệm replicas
  • tối đa 20 nodes mỗi cluster, data sẽ được phân tán ra các nodes ⇒ nếu 1 node bị fail thì sẽ mất data
  • Để hạn chế mất data ⇒ sử dụng cơ chế multi AZs

Auto discovery

  • Sử dụng configuration endpoint để get metadata (thông tin của các nodes còn lại)
  • Từ đó get data

Scaling

  • KHÔNG hỗ trợ scale dọc ⇒ Workaround bằng cách tạo một cluster mớimigrate cluster cũ sang
  • Scale ngang
    • Tối đa 20 nodes mỗi cluster100 nodes mỗi region (soft limit)
    • Khi sử dụng auto-discovery thì KHÔNG cần update các endpoint bằng tay
    • Cần re-map lại data (chia lại lượng data giữa các node)

So sánh Memcached và Redis

RedisMemcached
– độ trẽ thấp (ms)– độ trễ thấp (ms)
– hỗ trợ nhiều kiểu data phức tạp (hashing, set, bitmaps, ……)– chỉ hỗ trợ các loại data đơn giản (objects, string)
– hỗ trợ multi AZs với auto failover – hỗ trợ sharding – có read replica cho từng shard– hỗ trợ sharding (theo dạng multi nodes) – KHÔNG có read replicas
– cơ chế AOF (Append only file): có log cho mỗi request ghi vào trong redis ⇒ hạn chế mất dữ liệu – hỗ trợ backup và restore– KHÔNG hỗ trợ backup – KHÔNG hỗ trợ restore
– Hỗ trợ multi-thread
Redis vs Memcached

Tham khảo: https://tenten.vn/tin-tuc/memcached/

Avatar photo

Leave a Reply

Your email address will not be published. Required fields are marked *