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- Có
tối đa 20 nodes
mỗi cluster, data sẽ được phân tán ra các nodes ⇒ nếu 1node bị fail
thì 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ÔNG
hỗ trợ scale dọc ⇒Workaround
bằng cáchtạo một cluster mới
vàmigrate
cluster cũ sang
- Scale ngang
- Tối đa
20 nodes mỗi cluster
và100 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)
- 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/