哈希分表方法

dafenqi
2023-11-27 / 0 评论 / 9 阅读 / 正在检测是否收录...
/*
* 根据账号名获取分表 
* 函数接受两个参数,$u代表账号名,$n代表分表的数量,默认为256(即账号表分256张表)
*/
function calc_hash_tbl($u, $n = 256)
{
    $h = sprintf('%u', crc32($u));//使用crc32函数计算账号名的哈希值,并使用sprintf函数将其转换为无符号整数
    $h1 = intval($h / $n);//将哈希值除以分表数量$n得到$h1
    return $h1 % $n;//将$h1对$n取模得到最终的分表索引值
}

这个函数默认输出的值范围是从0到255,因为在最后一行代码中,对$h1取模$n的操作会得到0到$n−1的余数。

$accountname = "xx";
$table = "account_info_".calc_hash_tbl($accountname);
...
0

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /www/wwwroot/testblog.58heshihu.com/var/Widget/Archive.php on line 1032

评论 (0)

取消