《Redis设计与实现》第2章 简单动态字符串

30 篇文章 0 订阅 ¥40.00 ¥99.00
Redis使用SDS(Simple Dynamic String)而非C字符串作为默认字符串表示,因为SDS具备常数复杂度获取长度、防止缓冲区溢出、减少内存重分配次数、二进制安全和兼容部分C字符串函数等优势。SDS在结构中包含len属性记录字符串长度和free属性记录未使用空间,提供空间预分配和惰性空间释放策略,确保高效和安全的字符串操作。
摘要由CSDN通过智能技术生成

目录​​​​​​​

第2章 简单动态字符串

2.1 SDS的定义

2.2 SDS与C字符串的区别

 2.3 SDS API

2.4 重点回顾

2.5 参考资料


第2章 简单动态字符串

Redis没有直接使用C语言传统的字符串表示(以空字符结尾的字符数组,以下简称C字符串),而是自己构建了一种名为简单动态字符串(simple dynamic string,SDS)的抽象类型,并将SDS用作Redis的默认字符串表示。

在Redis里面,C字符串只会作为字符串字面量(string literal)用在一些无须对字符串值进行修改的地方,比如打印日志:



redisLog(REDIS_WARNING,"Redis is now ready to exit, bye bye...");

当Redis需要的不仅仅是一个字符串字面量,而是一个可以被修改的字符串值时,Redis就会使用SDS来表示字符串值,比如在Redis的数据库里面,包含字符串值的键值对在底层都是由SDS实现的。

举个例子,如果客户端执行命令:



                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值