您好,登錄后才能下訂單哦!
這篇文章主要介紹了redis的功能是什么,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
Redis提供了豐富的功能,初次見到可能會感覺眼花繚亂,這些功能都是干嘛用的?都解決了什么問題?什么情況下才會用到相應的功能?下面開始一步一步的解釋下。
基于本機內存的緩存
為了解決調用API依然需要2秒的問題,經過排查,其主要原因在于使用SQL獲取熱點新聞的過程中消耗了將近2秒的時間,于是乎,我們又想到了一個簡單粗暴的解決方案,即把SQL查詢的結果直接緩存在當前api服務器的內存中(設置緩存有效時間為1分鐘)。后續1分鐘內的請求直接讀緩存,不再花費2秒去執行SQL了。假如這個api每秒接收到的請求時100個,那么一分鐘就是6000個,也就是只有前2秒擁擠過來的請求會耗時2秒,后續的58秒中的所有請求都可以做到即使響應,而無需再等2秒的時間。
服務端的Redis
在API服務器的內存都被緩存塞滿的時候,我們發現不得不另想解決方案了。最直接的想法就是我們把這些緩存都丟到一個專門的服務器上吧,把它的內存配置的大大的。然后我們就盯上了redis。。。至于如何配置部署redis這里不解釋了,redis官方有詳細的介紹。隨后我們就用上了一臺單獨的服務器作為Redis的服務器,API服務器的內存壓力得以解決。
持久化(Persistence)
單臺的Redis服務器一個月總有那么幾天心情不好,心情不好就罷工了,導致所有的緩存都丟失了(redis的數據是存儲在內存的嘛)。雖然可以把Redis服務器重新上線,但是由于內存的數據丟失,造成了緩存雪崩,API服務器和數據庫的壓力還是一下子就上來了。所以這個時候Redis的持久化功能就派上用場了,可以緩解一下緩存雪崩帶來的影響。redis的持久化指的是redis會把內存的中的數據寫入到硬盤中,在redis重新啟動的時候加載這些數據,從而最大限度的降低緩存丟失帶來的影響。
哨兵(Sentinel)和復制(Replication)
Redis服務器毫無征兆的罷工是個麻煩事。那么怎辦辦?答曰:備份一臺,你掛了它上。那么如何得知某一臺redis服務器掛了,如何切換,如何保證備份的機器是原始服務器的完整備份呢?這時候就需要Sentinel和Replication出場了。Sentinel可以管理多個Redis服務器,它提供了監控,提醒以及自動的故障轉移的功能;Replication則是負責讓一個Redis服務器可以配備多個備份的服務器。Redis也是利用這兩個功能來保證Redis的高可用的。此外,Sentinel功能則是對Redis的發布和訂閱功能的一個利用。
集群(Cluster)
單臺服務器資源的總是有上限的,CPU資源和IO資源我們可以通過主從復制,進行讀寫分離,把一部分CPU和IO的壓力轉移到從服務器上。但是內存資源怎么辦,主從模式做到的只是相同數據的備份,并不能橫向擴充內存;單臺機器的內存也只能進行加大處理,但是總有上限的。所以我們就需要一種解決方案,可以讓我們橫向擴展。最終的目的既是把每臺服務器只負責其中的一部分,讓這些所有的服務器構成一個整體,對外界的消費者而言,這一組分布式的服務器就像是一個集中式的服務器一樣
感謝你能夠認真閱讀完這篇文章,希望小編分享redis的功能是什么內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。