5分鐘詳解什麼是Redis?

定義

Redis 是一種快速、開源、記憶體中的

鍵值資料結構儲存

REDIS 允許您在 RAM 上儲存鍵值對,由於訪問 RAM 比訪問磁碟快 150,000 倍,比訪問 SSD 快 500 倍,這意味著速度。

5分鐘詳解什麼是Redis?

但是,我們已經在大部分操作中使用 RAM!

但是當涉及快取或資料庫互動時,我們預設使用磁碟,想象一下訪問資料庫以讀取 10,000 條記錄,如果資料儲存在磁碟上,平均需要 30 秒,而從 RAM 讀取大約需要 0。0002 秒。

這意味著它是一個超快的讀/寫系統,但由於它儲存在 RAM 中,因此它是易失性的。

那麼,我們會丟失資料嗎?

為了防止發生資料丟失,有一個內建的永續性模組,它會在給定的情況下將記憶體狀態寫入磁碟上的轉儲檔案,轉儲檔案在系統啟動時載入,一旦啟動並執行,資料就可用於操作,所以,沒有資料丟失。

我們可以在多個例項中使用不同的配置,以允許我們透過所謂的哨兵和主從架構保持持續的正常執行時間。

Redis 是

Remote Dictionary Server

的首字母縮寫詞。

換句話說,它是一種工具,可讓您在 RAM 上儲存資料庫。

何時何地使用 Redis?

由於 Redis 速度快如閃電,因此主要用於快取目的,它是 Redis 最閃耀的地方,因為它提供了可以透過字典結構儲存的各種型別。

我們可以使用 Redis 快取具有高流量和靜態內容的完整頁面,如果頁面本身容易發生變化或者內容是動態生成的,那麼無論如何都不應該快取它,無論我們使用的是 Redis 還是 Memcached。如果頁面主要包含靜態內容或者每 x 時間重新整理一次內容,那麼我們可以快取該頁面並立即提供它!

在何處使用 Redis 的第一要務是

整頁快取

(FPC)。

它可以用來做的另一件事是

儲存會話

,與沒有任何永續性的 Memcached 不同,Redis 有它並且允許會話儲存,使用 Redis 處理會話可在與站點互動時提升使用者體驗。

永續性對於儲存會話很重要,以避免在使用者互動的關鍵部分丟失資料,例如,處理付款、將商品新增到購物車或作為經過身份驗證的使用者請求任何操作。

第二個是

會話快取

Redis 作為一個程序執行,與 MySQL、PHP、Apache 和所有其他服務的執行方式相同,它使用大量 RAM 記憶體,如果伺服器需要更多空間來進行繁重的提升,那麼它可能會選擇殺死 Redis 的程序,在這種情況下,我們會遇到服務停機並可能丟失資料,為了防止這種情況發生,Redis 內建了

Master-Slave

架構。

這種架構允許我們有額外的程序來監控我們的主要程序,從程序模仿它的命令,偶爾會複製主轉儲檔案,以保持程序之間的一致性。這些監控程序被稱為 Slaves,而主要的是 Master。

當主程序被殺死時,其中一個從屬程序成為主程序並在主程序重新啟動時處理所有請求,一旦 Master 再次啟動,它會從 Temporary Master 獲取轉儲檔案並將其用作基礎,主程序重新例項化為主程序,而臨時主程序再次變回從程序。

但是我們怎麼知道主程序什麼時候宕機了呢?我們怎麼知道哪個 Slave 應該成為 master?

Sentinel

是具有檢查 Redis 例項是否正常工作的特定職責的程序,他們負責:

檢測Master是否宕機;

選擇誰是臨時主人;

監控 Master 何時返回並告訴它要載入哪個轉儲檔案。

哨兵

,我猜這個名字說明了一切。

一般設定通常使用一個 Master、兩個 Slave 和三個 Sentinel。

Redis 有一個很好的社群和寫得很好的文件,如果你想嘗試一下,你會在他們的官方網站上找到很多支援。

Redis官網:

https://redis。io/

5分鐘詳解什麼是Redis?