一般情況下,客戶端分布都是用一致性hash來解決的,因為一致性hash在新增或者缺失一台例項的時候,有明顯的優勢(只影響缺失那台上的資料),那麼取模運算損失多少臺例項的資料呢,下面用乙個方法來稍微驗證一下:
<?php
$count = 0 ;
$array = array() ;
if(count($array)<1) getrand();//這就是取乙個陣列用來當取模運算的鍵
for($i=2;$i
<102;$i++)
function
getrand
() if($count >=50) break;}}
function
modequal
($array,$mod)
}
return
$count;
}?>
一次實驗的結果
2臺例項下:24/50
3臺例項下:17/50
4臺例項下:12/50
5臺例項下:15/50
6臺例項下:15/50
7臺例項下:8/50
8臺例項下:12/50
9臺例項下:8/50
10臺例項下:12/50
11臺例項下:8/50
12臺例項下:9/50
13臺例項下:10/50
14臺例項下:10/50
15臺例項下:11/50
16臺例項下:11/50
17臺例項下:12/50
18臺例項下:12/50
19臺例項下:12/50
20臺例項下:12/50
21臺例項下:13/50
22臺例項下:13/50
23臺例項下:14/50
24臺例項下:15/50
25臺例項下:16/50
26臺例項下:17/50
27臺例項下:17/50
28臺例項下:18/50
29臺例項下:18/50
30臺例項下:18/50
31臺例項下:19/50
32臺例項下:20/50
33臺例項下:20/50
34臺例項下:21/50
35臺例項下:22/50
36臺例項下:22/50
37臺例項下:23/50
38臺例項下:24/50
39臺例項下:24/50
40臺例項下:24/50
41臺例項下:24/50
42臺例項下:25/50
43臺例項下:25/50
44臺例項下:26/50
45臺例項下:27/50
46臺例項下:27/50
47臺例項下:28/50
48臺例項下:28/50
49臺例項下:28/50
50臺例項下:28/50
51臺例項下:28/50
52臺例項下:28/50
53臺例項下:28/50
54臺例項下:29/50
55臺例項下:29/50
56臺例項下:30/50
57臺例項下:30/50
58臺例項下:31/50
59臺例項下:32/50
60臺例項下:33/50
61臺例項下:34/50
62臺例項下:35/50
63臺例項下:36/50
64臺例項下:37/50
65臺例項下:38/50
66臺例項下:38/50
67臺例項下:39/50
68臺例項下:39/50
69臺例項下:40/50
70臺例項下:41/50
71臺例項下:41/50
72臺例項下:41/50
73臺例項下:41/50
74臺例項下:41/50
75臺例項下:42/50
76臺例項下:42/50
77臺例項下:42/50
78臺例項下:43/50
79臺例項下:43/50
80臺例項下:43/50
81臺例項下:43/50
82臺例項下:43/50
83臺例項下:44/50
84臺例項下:44/50
85臺例項下:44/50
86臺例項下:44/50
87臺例項下:44/50
88臺例項下:44/50
89臺例項下:44/50
90臺例項下:44/50
91臺例項下:44/50
92臺例項下:45/50
93臺例項下:45/50
94臺例項下:46/50
95臺例項下:47/50
96臺例項下:48/50
97臺例項下:48/50
98臺例項下:49/50
99臺例項下:49/50
100臺例項下:49/50
101臺例項下:49/50
快速冪(冪運算取模的logn演算法)
以下以求a的b次方來介紹 把b轉換成二進位制數 該二進位制數第i位的權為 例如11的二進位制是1011 11 2 1 2 0 2 1 2 1 因此,我們將a 轉化為算 對於 令a 0 a 2 0 1 a 1 a 2 1 1 a 2 a 2 2 0 a 3 a 2 3 1 可以看出a n 的前半部分是...
分布式中hash取模演算法中的問題
分布式中hash取模演算法中的問題 常用的演算法是對hash結果取餘數 hash modn 對機器編號從0到n 1,按照自定義的hash 演算法,對每個請求的hash 值按n取模,得到餘數i,然後將請求分發到編號為i的機器。但這樣的演算法方法存在致命問題,如果某一台機器宕機,那麼應該落在該機器的請求...
位運算之 按位與( )操作 (快速取模演算法)
由於位運算直接對記憶體資料進行操作,不需要轉成十進位制,因此處理速度非常快。按位與 bitwise and 運算符號為 a b 的操作的結果 a b中對應位同時為1,則對應結果位也為1 例如 10010001101000101011001111000 111111100000000 10101100...