什么是主從復制、讀寫分離、為什么要使用


一、什么是主從復制、讀寫分離、為什么要使用

主從復制:是一種數據備份的方案。

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

讀寫分離:是一種讓數據庫更穩定的的使用數據庫的方法。

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

為什么要使用主從分離和讀寫操作呢?

主從復制:1、當主數據庫出現問題時,可以當從數據庫代替主數據庫,可以避免數據的丟失。

     2、可以進行讀寫分離

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

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

二、什么是集群

如果說主從復制是各司其職的話,那么集群就是一群同樣的個體做着同樣的事情。在Redis中,數據的寫入操作次數很大的情況下,只使用單獨一個服務器來進行寫入操作的話,效率不高,那么如果使用集群方案,利用多個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、數據存儲在內存中,可用來做緩存。需要持久化的數據就將其存入硬盤,不需要持久化的數據,可以進行短暫的存儲,提高訪問速度。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM