SDS空间分配策略

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

猜你喜欢

转载自my.oschina.net/u/2462104/blog/1456841
sds
今日推荐