# ä¸è´ Hash ç®æ³ 彿们å¨åæ°æ®åºååºå表æè æ¯åå¸å¼ç¼åæ¶ï¼ä¸å¯é¿å çé½ä¼éå°ä¸ä¸ªé®é¢: å¦ä½å°æ°æ®ååç忣å°å个èç¹ä¸ï¼å¹¶ä¸å°½éçå¨å åèç¹æ¶è½ä½¿åå½±åçæ°æ®æå°ã ## Hash 忍¡ éæºæ¾ç½®å°±ä¸è¯´äºï¼ä¼å¸¦æ¥å¾å¤é®é¢ãé常æå®¹ææ³å°çæ¹æ¡å°±æ¯ `hash 忍¡`äºã å¯ä»¥å°ä¼ å ¥ç Key æç § `index = hash(key) % N` è¿æ ·æ¥è®¡ç®åºéè¦åæ¾çèç¹ãå ¶ä¸ hash 彿°æ¯ä¸ä¸ªå°å符串转æ¢ä¸ºæ£æ´æ°çå叿 å°æ¹æ³ï¼N å°±æ¯èç¹çæ°éã è¿æ ·å¯ä»¥æ»¡è¶³æ°æ®çåååé ï¼ä½æ¯è¿ä¸ªç®æ³ç容鿧忩屿§é½è¾å·®ã æ¯å¦å¢å æå é¤äºä¸ä¸ªèç¹æ¶ï¼ææç Key é½éè¦éæ°è®¡ç®ï¼æ¾ç¶è¿æ ·ææ¬è¾é«ï¼ä¸ºæ¤éè¦ä¸ä¸ªç®æ³æ»¡è¶³åå¸åååæ¶ä¹è¦æè¯å¥½ç容鿧åæå±æ§ã ## ä¸è´ Hash ç®æ³ ä¸è´ Hash ç®æ³æ¯å°ææçåå¸å¼ææäºä¸ä¸ªç¯ï¼å ¶èå´å¨ `0 ~ 2^32-1`ãå¦ä¸å¾ï¼  ä¹åå°å个èç¹æ£åå°è¿ä¸ªç¯ä¸ï¼å¯ä»¥ç¨èç¹ç IPãhostname è¿æ ·çå¯ä¸æ§å段ä½ä¸º Key è¿è¡ `hash(key)`ï¼æ£åä¹åå¦ä¸ï¼  ä¹åéè¦å°æ°æ®å®ä½å°å¯¹åºçèç¹ä¸ï¼ä½¿ç¨åæ ·ç `hash 彿°` å° Key 乿 å°å°è¿ä¸ªç¯ä¸ã  è¿æ ·æç §é¡ºæ¶éæ¹åå°±å¯ä»¥æ k1 å®ä½å° `N1èç¹`ï¼k2 å®ä½å° `N3èç¹`ï¼k3 å®ä½å° `N2èç¹`ã ### 容鿧 è¿æ¶å设 N1 宿ºäºï¼  ä¾ç¶æ ¹æ®é¡ºæ¶éæ¹åï¼k2 å k3 ä¿æä¸åï¼åªæ k1 è¢«éæ°æ å°å°äº N3ãè¿æ ·å°±å¾å¥½çä¿è¯äºå®¹éæ§ï¼å½ä¸ä¸ªèç¹å®æºæ¶åªä¼å½±åå°å°å°é¨åçæ°æ®ã ### æå±æ§ 彿°å¢ä¸ä¸ªèç¹æ¶:  å¨ N2 å N3 ä¹é´æ°å¢äºä¸ä¸ªèç¹ N4 ï¼è¿æ¶ä¼åç°åå°è±¡çæ°æ®åªæ k3ï¼å ¶ä½æ°æ®ä¹æ¯ä¿æä¸åï¼æä»¥è¿æ ·ä¹å¾å¥½çä¿è¯äºæå±æ§ã ## èæèç¹ å°ç®å为æ¢è¯¥ç®æ³ä¾ç¶ä¹æç¹é®é¢: å½èç¹è¾å°æ¶ä¼åºç°æ°æ®åå¸ä¸ååçæ åµï¼  è¿æ ·ä¼å¯¼è´å¤§é¨åæ°æ®é½å¨ N1 èç¹ï¼åªæå°éçæ°æ®å¨ N2 èç¹ã 为äºè§£å³è¿ä¸ªé®é¢ï¼ä¸è´åå¸ç®æ³å¼å ¥äºèæèç¹ãå°æ¯ä¸ä¸ªèç¹é½è¿è¡å¤æ¬¡ hashï¼çæå¤ä¸ªèç¹æ¾ç½®å¨ç¯ä¸ç§°ä¸ºèæèç¹:  è®¡ç®æ¶å¯ä»¥å¨ IP åå ä¸ç¼å·æ¥çæåå¸å¼ã è¿æ ·åªéè¦å¨åæçåºç¡ä¸å¤ä¸æ¥ç±èæèç¹æ å°å°å®é èç¹çæ¥éª¤å³å¯è®©å°éèç¹ä¹è½æ»¡è¶³ååæ§ã