til
til copied to clipboard
Redis key distribution model
The cluster's key space is split into 16384
Một key space của cluster sẽ được chia là 16_384
slots, và mỗi master-node trong cluster sẽ chưa một sub-set của 16_384
slots đó. Hash slot để lưu key sẽ được tính toán dựa trên công thức:
HASH_SLOT = CRC16(key) mod 16384
Khi đứng ở bất kỳ một node nào trong Redis cluster, xài một command nào đó, Redis sẽ tự redirect sang node chứa key đó bằng cách tính toán ra hash slot và redirect qua node đó.
Tuy nhiên, có những command sẽ không tự động redirect, ví dụ: KEYS *abc*
, lí do là vì xài regex, key ko phải là một giá trị cụ thể nên không tính ra được hash slot, dẫn tới không biết node nào chứa slot đó để redirect qua.