什麼是主從複製 讀寫分離 為什麼要使用

2022-05-05 06:21:12 字數 1614 閱讀 9684

簡單來說,是使用兩個或兩個以上相同的資料庫,將乙個資料庫當做主資料庫,而另乙個資料庫當做從資料庫。主資料庫中進行相應操作時,從資料庫記錄下所有主資料庫的操作,使其二者一模一樣。

是在有從資料庫的情況下使用,當主資料庫進行對資料的增刪改也就是寫操作時,將查詢的任務交給從資料庫

主從複製:1、當主資料庫出現問題時,可以當從資料庫代替主資料庫,可以避免資料的丟失。

2、可以進行讀寫分離

讀寫分離:1、避免從資料庫進行寫操作而導致的主從資料庫資料不一致的情況,因為當主從資料庫資料不一致時,那麼從資料庫最主要的備份任務就沒有意義了。 

2、減輕主資料庫的壓力。因為進行寫操作更耗時,所以如果不進行讀寫分離的話,寫操作將會影響到讀操作的效率。

如果說主從複製是各司其職的話,那麼集群就是一群同樣的個體做著同樣的事情。在redis中,資料的寫入操作次數很大的情況下,只使用單獨乙個伺服器來進行寫入操作的話,效率不高,那麼如果使用集群方案,利用多個redis伺服器來進行寫操作,大量的資料,你寫一點,我寫一點,大家都分擔一點,那麼效率會高很多。就像一小塊土地需要挖土,那麼一台挖掘機就足夠,但是遇上了一大片土地,雖然一台挖掘機也能夠完成任務,但是需要很久很久,那

麼我現在再找個十台挖掘機一起挖土,那麼效率就會高很多了。

集群模式的思想可以在多處使用。總之就是,乙個個體完成不了或者說效率很低的場景下,都可以使用這種思想。

就如下面將要說到的哨兵,乙個哨兵監視乙個伺服器集群肯定是不夠的,那麼就需要乙個哨兵集群來監視。

是一種容災方案。

哨兵:實則是乙個在特殊模式下的redis伺服器,裡面儲存的是自己本身的資訊,主伺服器的資訊,從伺服器的資訊。

用乙個或者多個哨兵來監視主伺服器(也就是進行寫操作的伺服器)是否在正常執行任務,一旦哨兵發現主伺服器不可用時,就找到乙個合適的從伺服器成為主伺服器。

redis資料庫是nosql資料庫中以key-value儲存模式下的一種資料庫。

那麼nosql又是什麼資料庫呢?非關係型資料庫。

什麼要使用nosql? 

1) 當資料量的總大小乙個機器放不下時。 

2) 資料索引乙個機器的記憶體放不下時。 

3) 訪問量(讀寫混合)乙個例項放不下時。

在資訊**的今天,資料的儲存,對資料的查詢都是非常頻繁且非常大量的。關係型資料庫的就顯得力不從心了,擴充套件性較差,查詢簡單條件資料的效率較低等缺點,無意是致命的。而nosql資料庫中的資料之間並無關係,這一特點造就了nosql的易擴充套件性,讀寫效能高等優勢。所以面對大量的資料讀寫,非關係型資料庫相比較於關係型資料庫有著巨大的優勢。

那麼redis資料庫為什麼又在nosql中脫穎而出?

我認為是有以下幾個原因,

1、redis支援多種資料型別:string(字串),hash(雜湊),list(列表),set(集合)及zset(sorted set:有序集合)。可以在大部分的場景中使用。

2、支援主從複製,讀寫分離。讀寫效率大大提公升。

3、資料儲存在記憶體中,可用來做快取。需要持久化的資料就將其存入硬碟,不需要持久化的資料,可以進行短暫的儲存,提高訪問速度。

什麼是主從複製 讀寫分離 為什麼要使用

主從複製 是一種資料備份的方案。簡單來說,是使用兩個或兩個以上相同的資料庫,將乙個資料庫當做主資料庫,而另乙個資料庫當做從資料庫。在主資料庫中進行相應操作時,從資料庫記錄下所有主資料庫的操作,使其二者一模一樣。讀寫分離 是一種讓資料庫更穩定的的使用資料庫的方法。是在有從資料庫的情況下使用,當主資料庫...

mysql讀寫分離,主從複製,主從延遲

為了提公升資料庫的效能,一般會採用讀寫分離,即寫請求去主庫,讀請求去從庫。支援開啟多個io執行緒,可以提公升效率。開啟mysql的semi sync 半同步複製功能,即資料落庫,寫入binlog,並至少同步給一台從庫的relay日誌,才算寫成功。從庫開啟多個sql執行緒,可以併發讀取relay日誌,...

redis的主從複製,讀寫分離,主從切換

當資料量變得龐大的時候,讀寫分離還是很有必要的。同時避免乙個redis服務宕機,導致應用宕機的情況,我們啟用sentinel 哨兵 服務,實現主從切換的功能。redis提供了乙個master,多個sl e的服務。準備三個redis服務,依次命名資料夾子master,sl e1,sl e2.這裡為在測...