redis的字符串号称是二进制安全的,其内部实现其实就是个head+ char*。
typedef char *sds; struct sdshdr { long len; long free; char buf[]; };
len 表示buf字符数组实际使用的空间大小,free表示buf剩余空间大小,buf所分配的空间大小等于len+free。尽管一开始buf的大小等于 len(当然可以大于),但随着字符串连接、拷贝(C中的字符串函数),buf分配的空间很可能会比len大,此时redis并不会释放多出的内存。
请教一下:
string 类型,Get key 的操作 ,我看资料说是O(1)的 ,我有点每想通,string类型怎么做的,也是用hash!
没找到相应的代码,能否告知 一二, 代码位置也行!
dict.c啊