redis常用資料型別對應的資料結構

2022-07-24 03:18:12 字數 928 閱讀 5146

redis的資料型別都是通過多種資料結構來實現,主要是出於時間和空間的考慮,當資料量小的時候通過陣列下標訪問最快,占用記憶體最小【壓縮列表是陣列的變種,允許儲存的資料大小不同】

因為陣列需要占用連續的記憶體空間,所以當資料量大的時候,就需要使用鍊錶,同時為了保證速度又需要和陣列結合,也就有了雜湊表。

1、字串

2、列表(list):支援儲存一組資料,這種資料型別對應兩種實現方法,一種是壓縮列表,另一種是雙向迴圈鍊錶

壓縮列表:資料集比較少的時候,採用壓縮列表

redis自己設計的一種儲存結構,類似陣列,通過一片連續的記憶體空間來儲存資料,但它允許儲存的資料大小不同

條件:優點:

雙向迴圈鍊錶:資料量比較大時,列表使用雙向迴圈鍊錶實現

3、字典(hash):儲存一組資料對,每個資料對又包含鍵值兩部分。

壓縮列表:資料集比較少的時候,採用壓縮列表

條件:雜湊表:資料量比較大,不滿足上述條件,使用雜湊表實現。

redis使用murmurhash2這種執行速度快,隨機性好的雜湊演算法作為雜湊函式,對於雜湊衝突,redis使用鍊錶法來解決。

redis支援雜湊表的動態擴容、縮絨。

4、集合(set):一種是基於有序陣列,一種是基於雜湊表。

有序陣列:

條件:雜湊表:

5、有序集合(sort set):

用來儲存一組資料,並且每個資料會附帶乙個得分。通過得分的大小,我們將資料組織成跳表這樣的資料結構,以支援快速地按照得分值、得分區間獲取資料。

壓縮列表:資料集比較少的時候,採用壓縮列表 

條件:跳表:

剖析Redis常用資料型別對應的資料結構

本文是學習演算法的筆記,資料結構與演算法之美 極客時間的課程 今天來看下,經典資料庫 redis 中常用資料型別,底層都是用哪種資料結構實現的?redis 是一種鍵值 key value 資料庫。相對於關係型資料庫,redis 也被叫作非關係型資料庫 你mysql這樣的關係型資料庫,表的結構比較複雜...

Redis常用資料型別

redis最為常用的資料型別主要有以下五種 string hash list set sorted set 下面我們先來逐一的分析下這五種資料型別的使用和內部實現方式 string 常用命令 set,get,decr,incr,mget 等。應用場景 string是最常用的一種資料型別,普通的key...

redis常用資料型別

redis 特點 1.所有資料儲存在記憶體中,高速讀寫 2.提供豐富多樣的資料型別 string hash list set sorted set 3.提供了 aof 和 rdb 兩種資料的持久化儲存方式,保證了 redis 重啟後資料不丟失 4.redis 的所有操作都是原子性的,還支援對幾個操作...