(2)redis原始碼學習筆記及體會

2021-10-10 06:47:24 字數 1363 閱讀 7629

本人根據博主 「android路上的人」的學習路線——位址如下原鏈結,進行的學習,博主推薦先閱讀結構體部分比較好,再次感謝博主「android路上的人」的分享,對我的學習幫助很大!

博主說「adlist.c」中重點有——1.資料結構的鍊錶2.函式程式設計的思想3.c中的迭代器寫法,這三個部分,於是我將帶著這三部分的思考開始進行學習。

1.鍊錶的節點listnode可看出,是雙向鍊錶。

2.節點內的值的部分是乙個void*型別的指標,所以使用更靈活

3.迭代器的結構裡,是乙個單向的鍊錶結點和乙個表示方向的int值

4.list煉表裡包含頭結點、尾結點,無符號long型的列表長度、以及三個指標,我現在暫時不知道是什麼作用,根據名字推測為——增加、釋放、查詢??

——檢視了博主的部落格以後,發現這****的分別是——1.複製函式指標2.釋放函式指標3.匹配函式指標

5.後面還有一些**,原來是巨集定義的基本操作,竟然一開始沒有看懂

6.在下面就是函式名的定義了,倒是沒什麼(此圖**字原博主的截圖)

7.巨集定義了,迭代器的方向——0.從頭到尾1.從尾到頭

8.adlist.c中除了對自身標頭檔案的引用,還引用了zmalloc.h,因此涉及到記憶體分配的部分

1.adlist.c檔案裡面,每個功能函式的流程基本是——(1.新建乙個node的指標 2.給node使用malloc分配記憶體3.分配記憶體失敗返回null,成功將乙個傳入的空指標型別的value賦值給node的value4.判斷list是否為空5.如果是空的則list的head和tail都被賦值為node;否則按需賦值6.更改list的長度7.返回list)

Redis學習(2) redis安裝

yum install gcc c alt r開啟上傳視窗,拖拽redis 3.0.0.tar.gz 上傳 tar zxvf redis 3.0.0.tar.gz進入解壓資料夾 cd redis 3.0.0 執行make make prefix user local redis install上面這...

redis學習筆記 2 redis的初始使用

set key value 新增鍵值對 get key 根據key獲取value del key 根據key刪除鍵值對 incr key 將value 1,如果沒有該key 預設設定該key值為0,並 1 key的型別必須為integer decr key 同上,將value 1 incrby ke...

redis原始碼學習筆記

目錄 1 從資料結構開始 圖為原始碼,附帶個人簡單分析 a 動態字串 檔案 sds.h sds.c 前言 s sizeof struct sdshdr 的解釋為buf為柔性陣列,不占用空間,僅僅為偏移量,所以s指標向後退乙個結構體大小為結構體位址所在。分析 這個結構是整個動態字串的基礎,sds為 s...