Redis Cluster chia keyspace thành 16384 hash slot. Mỗi key được băm bằng CRC16 rồi map vào một slot: slot = CRC16(key) % 16384.
- Mỗi master node phụ trách một dải slot — ví dụ node A giữ 0-5460, node B giữ 5461-10922, node C giữ 10923-16383 — và mỗi master có ít nhất một replica.
- Client dùng thư viện cluster-aware để gửi request thẳng tới node giữ slot tương ứng; đi nhầm node thì node trả về redirect
MOVED. - Hash tag (
{user}.profile) ép nhiều key rơi vào cùng một slot, nhờ đó dùng được thao tác multi-key và transaction. - Resharding (chuyển slot giữa các node) chạy online không cần downtime bằng
redis-cli --cluster reshard.
Cấu hình tối thiểu nên có: 3 master + 3 replica (6 node) để có HA và chịu được một node chết.
Lưu ý: cluster không hỗ trợ transaction hay thao tác multi-key vắt qua nhiều slot — trừ khi bạn dùng hash tag để gom chúng về một slot.