筆記:Redis簡介
阿新 • • 發佈:2018-11-09
Redis簡介
Redis是一個開源的高效能鍵值對資料庫。它通過提供多種鍵值資料型別來適應不同場景下的儲存需求,並藉助許多高層級的介面使其可以勝任如快取、佇列系統等不同的角色。
- 儲存結構
目前為止Redis支援的鍵值資料型別:字串型別,雜湊型別,列表型別,集合型別,有序集合型別
- 記憶體儲存與持久化
Redis資料庫中的所有資料都儲存在記憶體中。由於記憶體的讀寫速度遠快於硬碟,因此Redis在效能上對比其他基於硬碟儲存的資料庫有非常明顯的優勢,在一臺普通的膝上型電腦上,Redis可以在一秒內讀寫超過十萬個鍵值。
將資料儲存在記憶體中也有問題,例如,程式退出後記憶體中的資料會丟失。不過Redis提供了對持久化的支援,即將可以記憶體中的資料非同步寫入到硬碟中,同時不影響繼續提供服務。 - 功能豐富
Redis雖然是作為資料庫開發的,但由於其提供了豐富的功能,越來越多的人將其用作快取、佇列系統等。
Redis可以為每個鍵設定生存時間(Time To Live,TTL),生存時間到期後鍵會自動被刪除。這一功能配合出色的效能讓Redis可以作為快取系統來使用。
作為快取系統,Redis還可以限定資料佔用的最大記憶體空間,在資料達到空間限制後可以按照一定的規則自動淘汰不需要的鍵。
除此之外,Redis的列表型別鍵可以用來實現佇列,並且支援阻塞式讀取,可以很容易地實現一個高效能的優先順序佇列。同時在更高層面上,Redis還支援“釋出/訂閱”的訊息模式,可以基於此構建聊天室等系統。 - 簡單穩定
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