redis三主三從原理 redis多大并發(fā)量需要主從集群?
redis多大并發(fā)量需要主從集群?即使使用了Sentry,redis的每個(gè)實(shí)例都是滿存儲(chǔ),每個(gè)redis中存儲(chǔ)的內(nèi)容都是完整的數(shù)據(jù),浪費(fèi)內(nèi)存,有桶裝效應(yīng)。為了最大限度地利用內(nèi)存,我們可以使用集群,即分
redis多大并發(fā)量需要主從集群?
即使使用了Sentry,redis的每個(gè)實(shí)例都是滿存儲(chǔ),每個(gè)redis中存儲(chǔ)的內(nèi)容都是完整的數(shù)據(jù),浪費(fèi)內(nèi)存,有桶裝效應(yīng)。為了最大限度地利用內(nèi)存,我們可以使用集群,即分布式存儲(chǔ)。也就是說(shuō),每個(gè)redis存儲(chǔ)不同的內(nèi)容,總共有16384個(gè)插槽。每個(gè)redis得到一些Slot,hash_uslot=CRC16(key)mod 16384找到對(duì)應(yīng)的Slot,key是available key,如果有{},則取{}作為available key,否則整個(gè)key是available key,集群至少需要3個(gè)master和3個(gè)slave,每個(gè)實(shí)例使用不同的配置文件,master和slave不需要要進(jìn)行配置,集群將自行選擇。因此,這仍然是必要的,因?yàn)閞edis集群將內(nèi)容存儲(chǔ)到每個(gè)節(jié)點(diǎn),Sentinel的角色是監(jiān)視r(shí)edis主、從數(shù)據(jù)庫(kù)是否正常運(yùn)行。如果主數(shù)據(jù)庫(kù)出現(xiàn)故障,它會(huì)自動(dòng)將從數(shù)據(jù)庫(kù)轉(zhuǎn)換為主數(shù)據(jù)庫(kù)。
redis的key如何尋址?
1. 如果redis集群未啟用,則通過(guò)hash算法計(jì)算密鑰,理論復(fù)雜度為O(1)。Redis采用雜音hash2版本,具有良好的規(guī)則密鑰分散性,確保哈希沖突盡可能小。
2. 如果redis集群已啟用,則將執(zhí)行更多步驟。首先使用key計(jì)算密鑰存儲(chǔ)在集群中的機(jī)器,然后使用hash從這臺(tái)機(jī)器定位。