Redis設計與實現 02 資料結構與物件

2021-10-05 23:00:13 字數 452 閱讀 3159

《redis設計與實現》黃建巨集版的讀書筆記

struct sdshr ;
c字串

sds獲取字串長度的時間複雜度為o(n)

獲取字串長度的時間複雜度為o(1)

api 是不安全的,可能會造成緩衝區溢位

api 是安全的,不會造成緩衝區溢位

修改字串長度n次必然需要執行n次記憶體重分配

修改字串長度n次最多需要執行n次記憶體重分配(預分配和惰性釋放)

只能儲存文字資料

可以儲存文字或者二進位制資料(二進位制安全)

可以使用所有庫中的函式

可以使用部分庫中的函式

sds的api都是二進位制安全的,以處理二進位制的方式來處理sds存放在buf陣列裡的資料,程式不會對其中的資料做任何限制、過濾或者假設,資料在寫入時是什麼樣子,讀取時就是什麼樣子

Redis 設計與實現

本書的目標是以簡明易懂的方式講解 redis 的內部執行機制,通過閱讀本書,你可以了解到 redis 從資料結構到伺服器構造在內的幾乎所有知識。為了保證內容的簡潔性,本書會盡量以高抽象層次的角度來觀察 redis 並將 的細節留給讀者自己去考究。如果讀者只是對 redis 的內部運作機制感興趣,但並...

redis設計與實現

物件所使用的底層資料結構 編碼常量 object encoding 命令輸出 整數redis encoding int int embstr編碼的簡單動態字串 sds redis encoding embstr embstr 簡單動態字串 redis encoding raw raw 字典redis...

《redis設計與實現》

提高系統架構的效能,增加快取層是常見的優化方式,redis和memcache是當前採用較多的快取元件,redis被稱為資料結構資料庫 redis和memcache的區別 redis和memcahce都是基於記憶體的key value儲存 memcache的事件模型是多執行緒reactor模型,效能更...