字符串
redis是由c语言编写的,但是redis的字符串并不是c语言原生的字符串,而是叫sds的结构体,包含 free :空闲的字节数 len: 已经使用的字节数 char [] buf: 字符(字节)数组 。
使用SDS的好处是:获取字符串长度的复杂度为O(1) 因为C语言原生的字符串是不记录长度的,SDS的len就是长度的记录
并且不用每次修改字符串都要申请内存空间,比如新增长度小于 free的话就不用申请额外的空间, 减少了调用内核API的次数。
SDS是二进制安全的 ,除了可以存储文本 ,也能存储二进制数据
使用SDS不会造成缓冲区溢出.