redis 底層數據結構

簡單動態字符串SDS

  • 包含字符串長度,剩餘可用長度,字符數組
  • 用於Redis中所有的string存儲

字典(map)

  • 數組+鏈表形式,跟hashMap很像
  • 鏈地址法解決hash衝突
  • rehash使用新建hash數組鏈表進行數據rehash遷移,擴容是大於原數組長度的第一個2的n次冪
    漸進式rehash,就是不是一次性遷移完,而是在CRUD操作時,一點點遷移
  • 用於hash類型數據

鏈表

  • 雙端列表,直接有列表長度屬性
  • 用於list類型數據

跳躍表

  • 帶分值得一種有序類鏈表結構
  • 每個節點中的level中存儲分值相同的數據
  • 每個level中數據都有一個前進指針
  • 用於sortedSet類型

整數集合

  • 底層是int數組,通過encoding決定int的長度,也可以在存儲過程中進行長度升級,比如原先存儲的16位整形,要存一個32位整數,就需要進行類型升級
  • 升級的好處就是類型靈活,節約內存
  • 用於數據量比較小並且都是整形的list類型

壓縮列表

  • 有內存字節數,節點個數,節點等屬性的順序型結構
  • 用於整形或者長度較短的字符串的list,hash等類型

轉載請註明出處 阿布的夏天

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章