1. 基于本機內(nèi)存的緩存,當(dāng)調(diào)用api訪問數(shù)據(jù)庫時,假如此過程需要2秒,如果每次請求都要訪問數(shù)據(jù)庫,那將對服務(wù)器造成巨大的壓力,如果將此sql的查詢結(jié)果存到Redis中,再次請求時,直接從Redis中取得,而不是訪問數(shù)據(jù)庫,效率將得到巨大的提升,Redis可以定時去更新數(shù)據(jù)(比如1分鐘)。
2. 如果電腦重啟,寫入內(nèi)存的數(shù)據(jù)是不是就失效了呢,這時Redis還提供了持久化的功能。
3. 哨兵(Sentinel)和復(fù)制Sentinel可以管理多個Redis服務(wù)器,它提供了監(jiān)控、提醒以及自動的故障轉(zhuǎn)移功能;
復(fù)制則是讓Redis服務(wù)器可以配備備份的服務(wù)器;
Redis也是通過這兩個功能保證Redis的高可用;
4. 集群(Cluster) 單臺服務(wù)器資源總是有上限的,CPU和IO資源可以通過主從復(fù)制,進行讀寫分離,把一部分CPU和IO的壓力轉(zhuǎn)移到從服務(wù)器上,但是內(nèi)存資源怎么辦,主從模式只是數(shù)據(jù)的備份,并不能擴充內(nèi)存;
現(xiàn)在我們可以橫向擴展,讓每臺服務(wù)器只負責(zé)一部分任務(wù),然后將這些服務(wù)器構(gòu)成一個整體,對外界來說,這一組服務(wù)器就像是集群一樣。