10Redis 儲存list(原理)

2021-09-21 18:20:11 字數 706 閱讀 5736

在redis中,list型別是按照插入順序排序的字串鍊錶。和資料結構中的普通鍊錶一樣,我們可以在其頭部(left)和尾部(right)新增新的元素。在插入時,如果該鍵並不存在,redis將為該鍵建立乙個新的鍊錶。與此相反,如果鍊錶中所有的元素均被移除,那麼該鍵也將會被從資料庫中刪除。list中可以包含的醉倒元素數量是4294967295,

從元素插入和刪除的效率視角來看,如果我們是在鍊錶的兩頭插入或刪除元素,這將會是非常高效的操作,即使鍊錶中已經儲存了百萬條記錄,該操作也可以在常量時間內完成。然而需要說明的是,如果元素插入和刪除操作是作用於鍊錶中間,那將會非常低效。相信對於有良好的資料結構基礎的開發者而言,這一點並不難理解。

1、arraylist使用陣列方式儲存資料,所以根據索引查詢資料速度快,而新增或者刪除元素時需要設計到位移操作,所以比較慢。

2、linkedlist使用雙向鏈結方式儲存資料,每個元素都記錄前後元素的指標,所以插入、刪除資料時只是更改前後元素的指標指向即可,速度非常快,然後通過下標查詢元素時需要從頭開始索引,所以比較慢。

3、雙向鍊錶中新增資料

雙鏈表新增節點示意圖:

雙向鍊錶中刪除資料

10 Redis 雜湊物件

本文內容均來自 redis設計與實現 一書 雜湊物件的編碼可以是ziplist或者hashtable。ziplist編碼的雜湊物件使用壓縮列表作為底層實現。每當有新的鍵值對要加入到雜湊物件時,程式會先將儲存了鍵的壓縮列表節點推入到壓縮列表的表尾,再將儲存了值的壓縮列表節點推入到壓縮列表的表尾。儲存了...

Redis篇 1 0 Redis簡單介紹

1.redis 介紹 redis 是完全開源免費的,遵守bsd協議,是乙個高效能的key value資料庫。redis 與其他 key value 快取產品有以下三個特點 redis的優點 1.具有複雜的資料型別,支援string,list,set,zset,hash等資料型別 2.高效能 redi...

redis 學習(10) redis 慢查詢

mysql會記錄下查詢超過指定時間的語句,我們將超過指定時間的sql語句查詢稱為慢查詢,都記在慢查詢日誌裡。客戶端向redis伺服器傳送命令 命令請求在請求佇列中排隊等待處理 執行命令 返回命令結果 它決定了慢查詢日誌最多能儲存多少條日誌,slow log本身是乙個記憶體中的fifo佇列,當佇列大小...