Redis常用資料型別底層資料結構分析

2022-03-29 22:44:39 字數 681 閱讀 8805

redis是一種鍵值(key-value)資料庫,相對於關係型資料庫,它也被叫作非關係型資料庫

redis中,鍵的資料型別是字串,但是為了非富資料儲存方式,方便開發者使用,值的資料型別有很多

這種資料型別非常簡單,對應到資料結構裡面,就是字串

支援儲存一組資料,這種資料型別對應兩種方式,一種是壓縮列表,另一種是雙向迴圈鍊錶

## 壓縮列表
reis的雙向鍊錶額外定義了乙個list結構體,來組織鍊錶的首、尾指標,還有長度等資訊

儲存一組資料對。每個資料對又包含鍵值兩部分,實現方式壓縮列表雜湊表

## 壓縮列表
使用 murmurhash2執行速度快、隨機性好的雜湊演算法作為雜湊函式,對於雜湊衝突問題,redis使用鍊錶法來解決。除此之外,

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

集合用來儲存一組不重複的資料,也有兩種實現,一種是有序陣列,一種是雜湊表

## 有序陣列

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

Redis資料型別及其底層資料結構(上)

字串型別string 概念 字串型別是redis的最基本型別,它可以儲存任何形式的字串,乙個 key 對應乙個 value。其它的四種型別都是字串型別的不同形式。最大儲存 512mb 基本操作 getkey,setkey value 設定 獲取鍵值 strlenkey 獲取字串長度 鍵不存在返回0 ...

redis 基本資料型別及底層資料結構

1.redis 基本資料型別每種資料型別都對應兩種及以上資料結構,同一型別不同條件底層資料結構不同 檢視key對應的value編碼型別使用object encoding key 1.string string 型別有embstr和raw,int三種型別 當set的是int時,底層儲存的是int 當s...

redis五種資料型別及其底層資料結構

list底層採用壓縮列表和雙向鍊錶儲存,當元素數量小於512個且元素長度均小於64b時,採用壓縮列表,否則採用雙向鍊錶。hash底層採用壓縮列表和雜湊表儲存。當所有鍵值對的鍵和值長度都小於64b且數量小於512時,就使用壓縮列表,先放入key,再放入value 否則就使用雜湊表,直接將每乙個鍵值對存...