[Redis源碼系列]在Liunx安裝和常見API
redis
Redis是使用C寫的,而C中根本不存在string,list,hash,set和zset這些數據類型,那麼C是如何將這些數據類型實現出來的呢?對於常見的複製,通知,哨兵,集羣等功能,又是如何實現的。源碼分析
Redis代碼規模小,文件數量也很少,因此開始對Redis源碼進行分析。post
首先去官網下載文件,下載完解壓便可,咱們是對src中的文件進行分析。學習
還要下載個查看源碼的工具,我使用的是DEV C++,雖然很差使,可是能使。使用啥工具,本身看就行。spa
先肯定下針對學習路線:3d
string的底層實現 SDS sds.h和sds.c
cdn
list的底層實現 adlist.h和adlist.c 對象
hash的底層實現 dict.h和dict.c blog
hash和list的底層實現 ziplist.h和ziplist
zset的底層實現 skiplist.h和skiplist.c
set的底層實現 intset.h和intset.c
string的封裝 t_string.c
list的封裝 t_list.c
hash的封裝 t_hash.c
set的封裝 t_set.c
zset的封裝 t_zset.c
對象系統 object.c
RDB持久化 rdb.h和rdb.c
AOF持久化 aof.c
通知功能 notify.c
事務處理模塊 ae.h , ae.c,ae_epoll.c,ae_evport.c,ae_kqueue.c,ae_select.c
replication.c
sentinel.c
cluster.h和cluster.c
若是以爲寫得還行,麻煩給個贊👍,您的承認纔是我寫做的動力!
若是以爲有說的不對的地方,歡迎評論指出。
好了,拜拜咯。