新增全局函数 getHash(),用于在分库分表场景下获取一个指定长度 INT 型 HASH 值

2018年6月26日,MiniFramework 新增了一个名为 getHash() 的全局函数,主要用于在数据库分库、分表场景下,通过传入的字符串,计算出一个指定长度,类型为 INT 的 HASH 值,以便对分库和分表进行定位。

示例代码如下:

$len = 8;

for ($i = 0; $i < 100; $i ++) {
    echo $i . ' -> ' . getHash($i, $len) . "<br>";
}

上述代码运行结果为:

0 -> 1
1 -> 7
2 -> 5
3 -> 3
4 -> 0
5 -> 6
6 -> 4
7 -> 2
8 -> 3
9 -> 5
10 -> 1
11 -> 7
12 -> 5
13 -> 3
14 -> 0
15 -> 6
16 -> 4
17 -> 2
18 -> 3
19 -> 5
20 -> 2
...
...
...

可以看到,上述运行结果中,所有的数字都经过 getHash() 函数计算,定位到了0至7(长度 $len 为 8)当中的一个数值上,这个数值就是我们所要获取的 HASH 值上。

MiniFramework 的 GitHub 源代码地址:https://github.com/jasonweicn/MiniFramework

上述内容为 http://www.miniframework.com 原创,转载请注明出处。