redis 原始碼結構及各檔案功能概要

2022-04-07 21:54:29 字數 2607 閱讀 6078

/**

* redis 3.0

*/adlist.c //

雙向鍊錶結構,用於定義list

ae.c

//用於事件的處理

ae_epoll.c //

處理epoll事件

ae_evport.c //

通過event ports實現處理介面

ae_kqueue.c //

實現訊息佇列的處理

ae_select.c //

處理select事件

anet.c

//網路處理

aof.c //

實現aof模式

bio.c

//在後台通過執行緒模式實現io處理

bitops.c //

與setbit,getbit相關的位操作

blocked.c //

支援類似blpop,wait的阻塞操作

cluster.c

//與集群建立,通訊相關的實現

config.c //

配置檔案的解析

crc16.c

//基於ccitt標準的過濾演算法

crc64.c

db.c

//c-level資料庫api實現

debug.c //

除錯庫與日誌輸出

dict.c //

字典實現

endianconv.c

//主機位元組序編譯碼, redis致力於使用little endian來編碼

intset.c

//int集合型別實現

lzf_c.c

//lzf壓縮演算法

lzf_d.c

memtest.c

//記憶體測試

multi.c

//批量命令操作的原子實現

networking.c

//網路通訊實現

noti.c

//通過pub/sub實現的keyspace事件通知

object.c //

物件的儲存型別

pqsort.c

//一種快速排序實現

pubsub.c

//發布/訂閱模式

rand.c

//隨機序列的生成

rdb.c

//rdb資料的load與dump

redis.c

//redis資料庫的主程式入口

redis-benchmark.c //

redis基準測試入口

redis-check-aof.c //

aof檔案檢查入口

redis-check-dump.c //

dump檔案檢查入口

redis-cli.c //

redis的shell客戶端

release.c

//版本發布資訊

replication.c

//資料的主從備份

rio.c

//流式i/o的讀寫介面

scripting.c

//redis相關協議轉換到lua環境下執行

sds.c

//強大的字串處理機制

sentinel.c //

redis(集群)的監護程式

setproctitle.c

//程式名資訊相關?

sha1.c

//sha1加密演算法

slowlog.c

//記錄最近一段時間的查詢等操作

sort.c

//排序演算法及輔助函式

syncio.c

//同步io的實現

t_hash.c

//hash結構

t_list.c //

list結構

t_set.c //

set結構

t_string.c //

string結構

t_zset.c //

用兩種資料結構儲存同乙個資料體

util.c

//輔助函式

ziplist.c

//ziplist結構

zipmap.c //

zipmap結構

zmalloc.c

//在malloc上進行封裝,增加記憶體開銷統計

redis 原始碼結構及各檔案功能概要

redis 3.0 adlist.c 雙向鍊錶結構,用於定義list ae.c 用於事件的處理 ae epoll.c 處理epoll事件 ae evport.c 通過event ports實現處理介面 ae kqueue.c 實現訊息佇列的處理 ae select.c 處理select事件 anet...

Redis原始碼解析 字典結構

一般情況下,我們談到字典,難免要談到紅黑樹。但是redis這套字典庫並沒有使用該方案去實現,而是使用的是鍊錶,且整個 行數在1000行以內。所以這塊邏輯還是非常好分析的。我們可以想象下,如果使用普通的鍊錶去實現字典,那麼是不是整個資料都在一條鍊錶結構上呢?如果是這麼設計,插入和刪除操作是非常方便的,...

Redis原始碼分析(一) Redis結構解析

從今天起,本人將會展開對redis原始碼的學習,redis的 規模比較小,非常適合學習,是乙份非常不錯的學習資料,數了一下大概100個檔案左右的樣子,用的是c語言寫的。希望最終能把他啃完吧,c語言好久不用,快忘光了。分析原始碼的第一步,先別急著想著從哪開始看起,先瀏覽一下原始碼結構,可以模組式的漸入...