Redis學習筆記02-列表對象

  • 2020 年 1 月 22 日
  • 筆記

底層實現

ziplist編碼

使用壓縮列表作為底層實現,每個壓縮列表節點(entity)保存了一個列表元素。

linkedlist編碼

使用雙端鏈表作為底層實現,每個雙端鏈表節點(Node)都保存了一個字符串對象,而每個字符串對象都保存了一個列表元素。

編碼轉換

使用ziplist編碼的條件,需要對象可以同時滿足以下兩個條件,不能滿足的需要用linkedlist編碼:

  1. 列表對象保存的所有字符串元素的長度都小於64位元組
  2. 列表對象保存的元素數量小於512個

以上兩個條件的上限值是可以修改的,涉及到配置文件的選項:

list-max-ziplist-value  list-max-ziplist-entries

基礎命令

暫時不過多展開。

  • 創建-鏈尾:RPUSH Key value1 value2 value3......
  • 創建-鏈首:LPUSH Key value1 value2 value3.....

參考資料

《Redis設計與實現》