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ÔNGcó khái niệm replicas- Có
tối đa 20 nodesmỗi cluster, data sẽ được phân tán ra các nodes ⇒ nếu 1node bị failthì sẽmất data - Để hạn chế mất data ⇒ sử dụng cơ chế
multi AZs
Auto discovery
Default sẽ được bật- Cần phải sử dụng kết hợp với
Auto Discovery capable client– một dạng config được truyền kèm theo (hơi khó hiểu do chưa sử dụng bao giờ @@) https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/AutoDiscovery.AddingToYourClientLibrary.html - Từ 1 node, có thể
access được data của tất cả các nodes còn lại

- Sử dụng
configuration endpointđể get metadata (thông tin của các nodes còn lại) - Từ đó get data
Scaling
KHÔNGhỗ trợ scale dọc ⇒Workaroundbằng cáchtạo một cluster mớivàmigratecluster cũ sang

- Scale ngang
- Tối đa
20 nodes mỗi clustervà100 nodes mỗi region(soft limit) - Khi sử dụng
auto-discoverythì KHÔNG cần update các endpoint bằng tay - Cần
re-maplại data (chia lại lượng datagiữa các node)
- Tối đa
So sánh Memcached và Redis
| Redis | Memcached |
|---|---|
| – độ 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 |
Tham khảo: https://tenten.vn/tin-tuc/memcached/
