1、Redis是使用C语言开发的一种以键值对形式存储数据的非关系型数据库。
2、Redis的键只能是字符串类型,值可以包括:String、list、set、sorted set、hash等。
3、Redis的String类型实现
(1)采用简单动态字符串(simple dynamic string,SDS)的抽象类型。
(2)SDS的结构定义:
struct sdshdr { // 已使用字节 int len; // 未使用字节 int free; // 字节数组,用于保存字符串 char buf[]; }
(3)不采用C语言字符串,采用SDS的原因有:
获取字符串长度的复杂度为O(1);
API是安全的,不会造成缓冲区溢出;
修改字符串长度N次最多需要执行N次内存重新分配;
可以保存文本或者二进制数据;
兼容部分C字符串函数。
原文:https://www.cnblogs.com/xy80hou/p/11620989.html