作者的注釋很詳細,看其檔案頭注釋就明白該檔案的作用與目的,如下是對各原始檔的概括性描述:
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上進行封裝,增加記憶體開銷統計
要了解其原理,還是得深入其**學習。下一步應該可以先了解關於個資料結構的實現。
EventBus3 0原始碼解析
eventbus的註冊 eventbus.getdefault register this 那麼我們來看一下eventbus.getdefault 到底做了一下什麼操作 public static eventbus getdefault return defaultinstance 就是拿到了eve...
VUE 3 0原始碼之effect
effect方法主要用於處理函式的響應式,可用於計算屬性和watcheffect等功能,通過觸發函式中響應式變數的proxy的get方法實現將自身加入到proxy的deps中,實現與proxy關聯,也可以將其他依賴收集到自己的deps中 1.effect 建立乙個effect函式,如果不是lazy建...
jquery3 0原始碼解讀(二)Extend
上一節我們開啟了 src core.js檔案,但是僅僅看了它的jquery物件的賦值。這節我們來仔細分析core.js檔案中的乙個重要內容 extend。如果,簡單翻閱過jquery原始碼的話,你會發現原始碼中,也有多處呼叫了extend函式。所以,這個extend不光為外部提供呼叫,jquery內...