成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

面試又被問到一致性 Hash 算法?這樣回答秒殺面試官!

開發(fā) 前端 算法
當(dāng)數(shù)據(jù)量變大,并發(fā)量也增加的時候,把全部的緩存數(shù)據(jù)放在一臺機器上就有些吃力了,畢竟一臺機器的資源是有限的,通常我們會搭建集群環(huán)境,讓數(shù)據(jù)盡量平均的放到每一臺 Redis 中,比如我們的集群中有 4 臺Redis。

[[284994]]

數(shù)據(jù)分片

先讓我們看一個例子吧

我們經(jīng)常會用 Redis 做緩存,把一些數(shù)據(jù)放在上面,以減少數(shù)據(jù)的壓力。

當(dāng)數(shù)據(jù)量少,訪問壓力不大的時候,通常一臺Redis就能搞定,為了高可用,弄個主從也就足夠了;

當(dāng)數(shù)據(jù)量變大,并發(fā)量也增加的時候,把全部的緩存數(shù)據(jù)放在一臺機器上就有些吃力了,畢竟一臺機器的資源是有限的,通常我們會搭建集群環(huán)境,讓數(shù)據(jù)盡量平均的放到每一臺 Redis 中,比如我們的集群中有 4 臺Redis。

那么如何把數(shù)據(jù)盡量平均地放到這 4 臺Redis中呢?最簡單的就是取模算法:

hash( key ) % N,N 為 Redis 的數(shù)量,在這里 N = 4 ;

 

看起來非常得美好,因為依靠這樣的方法,我們可以讓數(shù)據(jù)平均存儲到 4 臺 Redis 中,當(dāng)有新的請求過來的時候,我們也可以定位數(shù)據(jù)會在哪臺 Redis 中,這樣可以精確地查詢到緩存數(shù)據(jù)。

02數(shù)據(jù)分片會遇到的問題

但是 4 臺 Redis 不夠了,需要再增加 4 臺 Redis ;

那么這個求余算法就會變成:hash( key ) % 8 ;

 

那么可以想象一下,當(dāng)前大部分緩存的位置都會是錯誤的,極端情況下,就會造成 緩存雪崩。

03一致性 Hash 算法

一致性 Hash 算法可以很好地解決這個問題,它的大概過程是這樣的:

把 0 作為起點,2^32-1 作為終點,畫一條直線,再把起點和終點重合,直線變成一個圓,方向是順時針從小到大。0 的右側(cè)第一個點是 1 ,然后是 2 ,以此類推。

對三臺服務(wù)器的 IP 或其他關(guān)鍵字進行 hash 后對 2^32 取模,這樣勢必能落在這個圈上的某個位置,記為 Node1、Node2、Node3。

 

然后對數(shù)據(jù) key 進行相同的操作,勢必也會落在圈上的某個位置;然后順時針行走,可以找到某一個 Node,這就是這個 key 要儲存的服務(wù)器。

 

如果增加一臺服務(wù)器或者刪除一臺服務(wù)器,只會影響 部分數(shù)據(jù)。

 

但如果節(jié)點太少或分布不均勻的時候,容易造成 數(shù)據(jù)傾斜,也就是大部分數(shù)據(jù)會集中在某一臺服務(wù)器上。

 

為了解決數(shù)據(jù)傾斜問題,一致性 Hash 算法提出了【虛擬節(jié)點】,會對每一個服務(wù)節(jié)點計算多個哈希,然后放到圈上的不同位置。

 

當(dāng)然我們也可以發(fā)現(xiàn),一致性 Hash 算法,也只是解決大部分數(shù)據(jù)的問題。

責(zé)任編輯:武曉燕 來源: 會點代碼的大叔
相關(guān)推薦

2024-01-15 10:38:20

多級緩存數(shù)據(jù)一致性分布式緩存

2024-06-26 11:55:44

2022-03-22 09:54:22

Hash算法

2022-11-10 07:49:09

hash算法代碼

2023-01-14 17:36:39

微服務(wù)注冊中心數(shù)據(jù)

2016-02-15 10:46:40

JavaHash算法

2021-02-05 08:00:48

哈希算法?機器

2018-08-08 15:51:44

Hash分布式算法

2021-05-19 21:50:46

Hash算法測試

2017-07-25 14:38:56

數(shù)據(jù)庫一致性非鎖定讀一致性鎖定讀

2024-04-11 08:01:24

RedisMysql分布式鎖

2021-07-27 08:57:10

算法一致性哈希哈希算法

2016-12-19 18:41:09

哈希算法Java數(shù)據(jù)

2020-03-16 11:55:28

PaxosRaft協(xié)議

2019-10-11 23:27:19

分布式一致性算法開發(fā)

2021-08-13 07:56:13

Raft算法日志

2020-07-20 08:30:37

算法哈希分布式系統(tǒng)

2022-12-14 08:23:30

2022-01-11 17:23:51

算法負載均衡Hash

2021-10-22 08:37:13

消息不丟失rocketmq消息隊列
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 亚洲www啪成人一区二区麻豆 | 国产精品免费在线 | 国产精品日日做人人爱 | 毛片免费在线 | 久久国产高清视频 | 欧美一区二区三区在线视频 | 国产精品久久久久久久久 | 91在线观看视频 | 国产精品视频久久久久久 | 大陆一级毛片免费视频观看 | 日本一二三区在线观看 | 国产一区成人 | 国产激情福利 | 国产99视频精品免费视频7 | jlzzjlzz欧美大全| 日韩精品视频一区二区三区 | 国产成人精品综合 | 午夜a√ | 亚洲国产精品激情在线观看 | 日本亚洲一区二区 | 成人在线h | 精品中文字幕一区 | 久久精品中文 | 夜夜摸夜夜操 | 一级毛片在线播放 | 国产免费又色又爽又黄在线观看 | 国产成人av免费看 | 久久国内精品 | 成人在线不卡 | 欧美激情一区二区 | 亚洲激情在线 | av网站在线看 | 国产精品国产成人国产三级 | 国产九九九 | 国产日韩久久久久69影院 | 成人性视频免费网站 | 日韩成人免费 | 午夜精品一区二区三区在线视 | 美女在线国产 | 日韩精品在线一区 | 久久99精品久久久久久噜噜 |