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等類型

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

相關文章
相關標籤/搜索