Redis 源碼中的sds,是一個動態字符串庫(A dynamic string library).
結構如下:
struct sdshdr {
? int len;
? int free;
? char buf[];
};
len是字符串長度,free是緩存區中的剩余大小,其中的內存分配當然用zmalloc。
typedef char* sds; ?sds類型的指針退sizeof(sdshdr)個字節就是sdshdr。
這個庫接口比較豐富,包括增長(sdsMakeRoom, sdsgrowzero,sdscat,sdslen,緩存區每次增長到需要的2倍,如果超過1M,則每次增長1M),切分(sdssplit,sdssplitlen),sprintf接口,大小寫轉換,字符替換。
比較特別的是其中可以添加引用字符串(quoted string),接口為sdscatrepr,還有反向操作sdssplitargs,可以做命令行解析。
感覺里面少一個字符串替換的接口。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
