Redis 中,字典是基礎結構。Redis 數據庫數據、過期時間、哈希類型都是把字典作為底層結構。 字典的結構 哈希表 哈希表的實現代碼在:dict.h/dictht ,Redis 的字典用哈希表的方式實現。 table 是一個哈希表數組,每個節點的實現在 dict ...
.字典相關的幾個結構體 .動態擴容方法 int dictRehash dict d, int n 為了對dictht進行動態擴容,rehash方法將ht 中的值搬n個到ht 中, 分批次進行搬運,直到ht 中的值都搬到ht 上,再將ht 指針交給ht ,rehashidx ,完成此次rehash過程 .使用到的幾個hash算法 針對int的hash函數 MurmurHash 算法 djb has ...
2018-07-26 12:32 0 4228 推薦指數:
Redis 中,字典是基礎結構。Redis 數據庫數據、過期時間、哈希類型都是把字典作為底層結構。 字典的結構 哈希表 哈希表的實現代碼在:dict.h/dictht ,Redis 的字典用哈希表的方式實現。 table 是一個哈希表數組,每個節點的實現在 dict ...
這篇blog介紹dict的實現。 dict.c ...
dict的用途 dict是一種用於保存鍵值對的抽象數據結構,在redis中使用非常廣泛,比如數據庫、哈希結構的底層。 當執行下面這個命令: 以及使用哈希結構,如: 都會使用到dict作為底層數據結構的實現。 結構的定義 先看看字典以及相關數據結構體的定義: 字典 ...
1.初步認識跳躍表 圖中所示,跳躍表與普通鏈表的區別在於,每一個節點可以有多個后置節點,圖中是一個4層的跳躍表 傳統意義的單鏈表是一個線性結構,向有序的鏈表中插入一個節點需要O(n)的時間 ...
2020的開年是比較艱難的,爆發了肺炎疫情,希望大家多注意安全,也希望疫情早日好轉! 以3.2版本的源碼為例,開始講解,有時會貼出源碼,進行說明,並會注明源碼出處。 數據庫 應該都知道默認redis會有16個庫,是根據配置文件來的,可以通過select命令來切換數據庫。那原理 ...
redis的一些介紹,麻煩閱讀前面的幾篇文章,想對redis的詳細實現有所了解,強力推薦《redis設計與實現》(不僅僅從作者那兒學習到redis的實現,還有項目的管理、思想等,作者可能比你我都年輕歐)。如果閱讀了上面的文檔,激起你對redis的強力好奇,那么就只能閱讀源碼了。不管是在校學生 ...
一.SDS的簡單介紹 SDS:簡單動態字符串(simple dynamic string) 1)SDS是Redis默認的字符表示,比如包含字符串值的鍵值對都是在底層由SDS實現的 2)SDS用來保存數據庫中的字符串值 3)SDS被用作緩沖區:比如AOF模塊的AOF緩沖區,以及客戶端 ...
哈希函數簡介 哈希函數(hash function),又叫散列函數,哈希算法。散列函數把數據“壓縮”成摘要,有的也叫”指紋“,它使數據量變小且數據格式大小也固定。 哈希函數將數據打亂混合,重新創建 ...