演算法 客戶端分布演算法用取模運算

2021-07-05 16:51:28 字數 2574 閱讀 6705

一般情況下,客戶端分布都是用一致性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...