1. 程式人生 > >Redis內部資料結構實現解析

Redis內部資料結構實現解析

當對value進行append操作時,顯然,最初建立時分配給sds的空間已無法滿足儲存要求,因而Redis會為buf[]動態分配儲存空間。當新字串的總長度小於時sds最大預分配長度時,新的儲存空間所能存放的字串長度為(oldStr.length + appendStr.length) * 2 + 1,其中後面的“+1”用來存放‘\0’;否則,就分配appendStr的長度 + 最大預分配長度 的空間。同時,還要同步更新例項中len和free的值,如果buf[]的地址發生了改變,也要更新sds的值。