共計 1498 個字符,預計需要花費 4 分鐘才能閱讀完成。
自動寫代碼機器人,免費開通
這篇文章主要介紹了 redis 的功能是什么,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓丸趣 TV 小編帶著大家一起了解一下。
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 的壓力轉移到從服務器上。但是內存資源怎么辦,主從模式做到的只是相同數據的備份,并不能橫向擴充內存;單臺機器的內存也只能進行加大處理,但是總有上限的。所以我們就需要一種解決方案,可以讓我們橫向擴展。最終的目的既是把每臺服務器只負責其中的一部分,讓這些所有的服務器構成一個整體,對外界的消費者而言,這一組分布式的服務器就像是一個集中式的服務器一樣
感謝你能夠認真閱讀完這篇文章,希望丸趣 TV 小編分享 redis 的功能是什么內容對大家有幫助,同時也希望大家多多支持丸趣 TV,關注丸趣 TV 行業資訊頻道,遇到問題就找丸趣 TV,詳細的解決方法等著你來學習!
向 AI 問一下細節
丸趣 TV 網 – 提供最優質的資源集合!