首頁/ 歷史/ 正文

遠端字典伺服器Redis快取全接觸

遠端字典伺服器Redis快取全接觸

【51CTO。com快譯】我們都遇到過應用程式執行慢騰騰的情況。再優秀的程式碼也會在高負載下降低效能。快取是一種快速且相對省錢的方法,可大幅提升效能,並縮短響應時間。

Redis簡介

Redis(遠端字典伺服器)是一種開源的記憶體中資料儲存,最常用作分散式快取。它提供各種高效的資料結構,旨在可以高速訪問您的資料。Redis又叫NoSQL資料庫和鍵/值儲存。由於Redis將資料儲存在記憶體中,而不是儲存在磁碟上,提供了無與倫比的速度、可靠性和效能。

那麼,記憶體中資料儲存又是什麼呢?簡而言之,它是將整個資料集儲存在記憶體中的資料庫。這意味著每當您查詢資料庫或更新資料庫中的資料時,僅訪問主記憶體。因此,這些操作不涉及磁碟。這很棒,因為主記憶體比任何磁碟都要快得多。

為什麼將Redis用作快取?

快取的主要目的是,縮短訪問儲存在應用程式主記憶體空間之外的資料所需的時間。如果不使用快取,應用程式針對每個請求與資料來源進行互動;如果使用快取,只需要對外部資料來源發出單個請求,隨後的訪問由快取來處理。

應用程式依賴外部資料來源時,這些資料來源的延遲和吞吐量會造成效能瓶頸。提升效能的一種方法是在記憶體中儲存和處理資料,其位置更靠近應用程式。

這時候Redis就能發揮作用。Redis旨在將所有資料儲存在記憶體中,從而在讀取或寫入資料時提供儘可能高的效能。

Redis的速度極快。它提供亞毫秒級響應時間,每秒可支援數百萬個請求,以支援要求苛刻的實時應用程式。

您要做的通常是將經常訪問的資料儲存在Redis中,那樣無論何時請求資料,資料都可以來自快取而不是您的資料庫。然後,只要對您的資料進行更改,就可以使相關快取無效,那樣您可以讓快取保持最新。

Redis快取的工作原理

假設您有一個基於WordPress的網站。

WordPress頁面首次載入時,在伺服器上執行資料庫查詢。Redis會記住或快取該查詢。因此,另一個使用者載入WordPress頁面時,結果從Redis和記憶體來提供,無需查詢資料庫。

物件快取的工作原理是將載入WordPress頁面所需的SQL查詢快取在記憶體中。當頁面載入時,生成的SQL查詢結果由Redis從記憶體來提供,因此查詢不必命中資料庫。結果是頁面載入時間短得多,伺服器對資料庫資源的影響較小。

遠端字典伺服器Redis快取全接觸

圖1。 Redis的工作原理

訪問記憶體(物理RAM)中的資料比訪問硬驅中的資料要快得多。因此很容易注意到,如果應用程式想要訪問的資料在主記憶體中,訪問該資料比訪問儲存在硬驅上的資料容易得多。

如果查詢在Redis中不可用,資料庫提供結果,Redis將結果新增到快取中。如果值在資料庫中加以更新(比如在WordPress中建立了一個新的帖子或頁面),該查詢的Redis值將無效,以防止提供錯誤的快取資料。

為什麼使用Redis?

快速響應的資料庫:它將資料儲存在記憶體中,而不是儲存在磁碟上,因此執行讀寫操作時,響應時間比其他資料庫快。可以與其他資料庫一起使用,有助於減輕負載、提升效能,但也可以用作主資料庫。

資料永續性:Redis使用永續性磁碟儲存,旨在遇到程序中斷和網路瓶頸後可以存活下來。

會話快取:Redis最明顯的使用場景之一是將其用作會話快取。與其他會話儲存相比,使用Redis的優點在於Redis提供了永續性。

基於鍵的訪問:Redis基於鍵值模型,其中資料由Redis透過鍵來儲存和獲取。基於鍵的訪問帶來了極高效的訪問時間,這種模型可自然地對映到快取。

想了解Redis的更多資訊以及相關資源,可以訪問說明文件:https://redis。io/。

原文標題:Redis as Cache: How it Works and Why to Use it,作者:Bobby Borisov

【51CTO譯稿,合作站點轉載請註明原文譯者和出處為51CTO。com】

相關文章

頂部