假如說我們目前已有一億個注冊用戶,要把這些用戶平均分配到100張表中,並且后續注冊的用戶也要均勻分配到這100張表
首先當用戶注冊時,如用戶名為“username”,用php的crc32()函數處理用戶名,得到一個數值4166911607,代碼如下
<?php
$str='username';
$num=sprintf("%u",crc32($str));
注意:由於 PHP 的整數是帶符號的,所以在 32 位系統上許多 crc32 校驗碼將返回負整數。 盡管在 64 位上所有 crc32() 的結果將都是正整數。因此你需要使用 sprintf()的“%u”格式符來獲取表示無符號 crc32 校驗碼的字符串。
然后,我用得到近個數值變量求模,$num%100=47,因此我們把'username'添加到第47個表中。
同樣的,當用戶登錄時我們就可以通過同樣的方法去第47個表中查找用戶名為'username'的數據
