本例給出實現3等分的代碼和運行結果。在保證,每一個部分都不會宕機的情況下,這種算法是最簡單的。否則就用一致性哈希算法。
公式原理:求余算法: hash(object)%N
for($i?=?1;$i<=100;$i++){
$result?=?crc32($i)?%?3;
echo?"i:".$i?.?"?result:".$result?."\r\n";
}
//運行結果如下
i:1?result:2
i:2?result:1
i:3?result:1
i:4?result:1
i:5?result:1
i:6?result:1
i:7?result:0
i:8?result:2
i:9?result:0
i:10?result:0
i:11?result:0
i:12?result:0
i:13?result:2
i:14?result:0
i:15?result:1
i:16?result:0
i:17?result:2
i:18?result:0
i:19?result:1
i:20?result:0
i:21?result:1
i:22?result:2
i:23?result:1
i:24?result:2
i:25?result:0
i:26?result:1
i:27?result:0
i:28?result:0
i:29?result:2
i:30?result:1
i:31?result:1
i:32?result:1
i:33?result:2
i:34?result:2
i:35?result:1
i:36?result:1
i:37?result:1
i:38?result:0
i:39?result:1
i:40?result:2
i:41?result:2
i:42?result:2
i:43?result:1
i:44?result:2
i:45?result:1
i:46?result:0
i:47?result:0
i:48?result:0
i:49?result:0
i:50?result:0
i:51?result:0
i:52?result:1
i:53?result:0
i:54?result:1
i:55?result:2
i:56?result:1
i:57?result:0
i:58?result:0
i:59?result:2
i:60?result:0
i:61?result:1
i:62?result:1
i:63?result:0
i:64?result:0
i:65?result:0
i:66?result:1
i:67?result:1
i:68?result:1
i:69?result:1
i:70?result:1
i:71?result:1
i:72?result:0
i:73?result:1
i:74?result:2
i:75?result:0
i:76?result:2
i:77?result:0
i:78?result:0
i:79?result:2
i:80?result:0
i:81?result:2
i:82?result:0
i:83?result:2
i:84?result:1
i:85?result:0
i:86?result:0
i:87?result:1
i:88?result:1
i:89?result:0
i:90?result:0
i:91?result:0
i:92?result:1
i:93?result:1
i:94?result:0
i:95?result:0
i:96?result:1
i:97?result:0
i:98?result:0
i:99?result:0
i:100?result:0
大家可以看到完全符合預期。