redis小试牛刀01

简单动态字符串(SDS):simple dynamic string,C字符串最后多一个空字符,SDS比C字符串更适合redis

优点:1)C字符串长度要遍历,长度复杂度为O(n),SDS直接记录字符串长度,长度复杂度为O(1) 

        2)由于C字符串不记录字符串长度,易造成溢出,SDS空间分配策略完全杜绝缓冲区溢出的可能,因为在修改以前已经自动扩展至所需的大小

        3)C字符串修改字符串长度可能造成内存溢出或者泄露,修改N次长度必须执行N次内存重新分配,SDS通过使用未使用空间解除了字符串长度和底层数据长度之间的关联,主要实现了空间预分配和惰性空间释放两种优化策略,修改N次长度最多执行N次内存重新分配

        4)C字符串只能保存文本数据,SDS可以保存文本或者二进制数据

        5)C字符串可以使用所有<string.h>库中的函数,SDS可以使用一部分<string.h>库中的函数

for example:set a a/rpush animal "chicken" "dog" "cat"

参考黄健宏老师的《Redis设计与实现》

原文地址:https://www.cnblogs.com/laowu1239/p/4548794.html