1.SDS空间预分配策略
对于空间小于1M来说,分配空间为原有总长度+同样长度+1byte(B,字节).
比如原长度为8的字符串,新增5个长度后,总共为13长度,则预分配13+13+1=27字节(额外一字节用于保存空字符串)
对于大于1M来说,分配空间为原有总长度+1MB+1byte
比如增加完字符串后长度为15MB,则为15MB+1MB+1byte
2.惰性空间释放
对于需要缩短字符串的情景,即需要释放空间,SDS将需要移除的字符串移除,但是多余出来的的空间不释放,而是保留下来,记录在free里,这样扩展就有多余空间来进行,当然有真正释放空间的方法.
比如"XYXYabcXY\0" 移除所有的X和Y
则len变为3 free变为6