1. 程式人生 > >筆記:Redis簡介

筆記:Redis簡介

Redis簡介

Redis是一個開源的高效能鍵值對資料庫。它通過提供多種鍵值資料型別來適應不同場景下的儲存需求,並藉助許多高層級的介面使其可以勝任如快取、佇列系統等不同的角色。

  1. 儲存結構
    目前為止Redis支援的鍵值資料型別:字串型別,雜湊型別,列表型別,集合型別,有序集合型別
  2. 記憶體儲存與持久化
    Redis資料庫中的所有資料都儲存在記憶體中。由於記憶體的讀寫速度遠快於硬碟,因此Redis在效能上對比其他基於硬碟儲存的資料庫有非常明顯的優勢,在一臺普通的膝上型電腦上,Redis可以在一秒內讀寫超過十萬個鍵值。
    將資料儲存在記憶體中也有問題,例如,程式退出後記憶體中的資料會丟失。不過Redis提供了對持久化的支援,即將可以記憶體中的資料非同步寫入到硬碟中,同時不影響繼續提供服務。
  3. 功能豐富
    Redis雖然是作為資料庫開發的,但由於其提供了豐富的功能,越來越多的人將其用作快取、佇列系統等。
    Redis可以為每個鍵設定生存時間(Time To Live,TTL),生存時間到期後鍵會自動被刪除。這一功能配合出色的效能讓Redis可以作為快取系統來使用。
    作為快取系統,Redis還可以限定資料佔用的最大記憶體空間,在資料達到空間限制後可以按照一定的規則自動淘汰不需要的鍵。
    除此之外,Redis的列表型別鍵可以用來實現佇列,並且支援阻塞式讀取,可以很容易地實現一個高效能的優先順序佇列。同時在更高層面上,Redis還支援“釋出/訂閱”的訊息模式,可以基於此構建聊天室等系統。
  4. 簡單穩定
    Redis直觀的儲存結構使得通過程式與Redis互動十分簡單。在Redis中使用命令來讀寫資料,命令語句之於Redis就相當於SQL語言之於關係資料庫。例如在關係資料庫中要獲取posts表內id為1的記錄的title欄位的值可以使用如下SQL語句實現:
select title from posts where id = 1 limit 1

相對應的,在Redis中要讀取鍵名為post:1的雜湊型別鍵的title欄位的值,可以使用如下命令語句實現:

HGET post:1 title