10 Redis 雜湊物件

2021-10-06 16:11:28 字數 808 閱讀 8674

本文內容均來自《redis設計與實現》一書 

雜湊物件的編碼可以是ziplist或者hashtable。

ziplist編碼的雜湊物件使用壓縮列表作為底層實現。每當有新的鍵值對要加入到雜湊物件時,程式會先將儲存了鍵的壓縮列表節點推入到壓縮列表的表尾,再將儲存了值的壓縮列表節點推入到壓縮列表的表尾。

儲存了同一鍵值對的兩個節點總是緊挨在一起,儲存鍵的節點在前,儲存值得節點在後。

先新增到雜湊物件中得鍵值對會被放在壓縮列表得表頭方向,而後來新增到雜湊物件中的鍵值對會被放在壓縮列表的表尾方向。 

hashtable編碼的雜湊物件使用字典作為底層實現,雜湊物件中的每ge鍵值對都使用乙個字典鍵值對來儲存。

字典的每個鍵都是乙個字串物件,物件中儲存了鍵值對的鍵。

字典的每個值都是乙個字串物件,物件中儲存了鍵值對的值。

當雜湊物件可以同時滿足下面兩個條件時,雜湊物件使用ziplist編碼:

不能滿足以上兩個條件的雜湊物件需要使用hashtable編碼。

注意:以上兩個條件的上限值是可以修改的,對應得配置選項為hash-max-ziplist-value和hash-max-ziplist-entries。

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佇列,當佇列大小...

10Redis 儲存list(原理)

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