原文:redis源碼學習-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 源碼解析 4:字典 dict

Redis 中,字典是基礎結構。Redis 數據庫數據、過期時間、哈希類型都是把字典作為底層結構。 字典的結構 哈希表 哈希表的實現代碼在:dict.h/dictht ,Redis 的字典用哈希表的方式實現。 table 是一個哈希表數組,每個節點的實現在 dict ...

Sat Dec 26 07:29:00 CST 2020 0 427
Redis源碼閱讀]dict字典的實現

dict的用途 dict是一種用於保存鍵值對的抽象數據結構,在redis中使用非常廣泛,比如數據庫、哈希結構的底層。 當執行下面這個命令: 以及使用哈希結構,如: 都會使用到dict作為底層數據結構的實現。 結構的定義 先看看字典以及相關數據結構體的定義: 字典 ...

Mon Jan 08 19:06:00 CST 2018 1 1048
redis源碼學習-skiplist

1.初步認識跳躍表 圖中所示,跳躍表與普通鏈表的區別在於,每一個節點可以有多個后置節點,圖中是一個4層的跳躍表 傳統意義的單鏈表是一個線性結構,向有序的鏈表中插入一個節點需要O(n)的時間 ...

Thu Jul 26 22:36:00 CST 2018 0 4244
從零開始學習redis源碼

  2020的開年是比較艱難的,爆發了肺炎疫情,希望大家多注意安全,也希望疫情早日好轉!   以3.2版本的源碼為例,開始講解,有時會貼出源碼,進行說明,並會注明源碼出處。   數據庫   應該都知道默認redis會有16個庫,是根據配置文件來的,可以通過select命令來切換數據庫。那原理 ...

Sun Feb 16 00:06:00 CST 2020 0 839
一起學習redis源碼

redis的一些介紹,麻煩閱讀前面的幾篇文章,想對redis的詳細實現有所了解,強力推薦《redis設計與實現》(不僅僅從作者那兒學習redis的實現,還有項目的管理、思想等,作者可能比你我都年輕歐)。如果閱讀了上面的文檔,激起你對redis的強力好奇,那么就只能閱讀源碼了。不管是在校學生 ...

Tue Jun 03 06:28:00 CST 2014 1 4373
Redis學習之SDS源碼分析

一.SDS的簡單介紹 SDS:簡單動態字符串(simple dynamic string) 1)SDS是Redis默認的字符表示,比如包含字符串值的鍵值對都是在底層由SDS實現的 2)SDS用來保存數據庫中的字符串值 3)SDS被用作緩沖區:比如AOF模塊的AOF緩沖區,以及客戶端 ...

Sat Apr 20 18:53:00 CST 2019 0 1200
Redis原理再學習04:數據結構-哈希表hash表(dict字典)

哈希函數簡介 哈希函數(hash function),又叫散列函數,哈希算法。散列函數把數據“壓縮”成摘要,有的也叫”指紋“,它使數據量變小且數據格式大小也固定。 哈希函數將數據打亂混合,重新創建 ...

Mon Feb 28 09:31:00 CST 2022 0 1263
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM