文档章节

SDS空间分配策略

勤奋的蚂蚁
 勤奋的蚂蚁
发布于 2017/07/18 14:42
字数 235
阅读 8
收藏 0

1.SDS空间预分配策略

对于空间小于1M来说,分配空间为原有总长度+同样长度+1byte(B,字节).

比如原长度为8的字符串,新增5个长度后,总共为13长度,则预分配13+13+1=27字节(额外一字节用于保存空字符串)

对于大于1M来说,分配空间为原有总长度+1MB+1byte

比如增加完字符串后长度为15MB,则为15MB+1MB+1byte

2.惰性空间释放

对于需要缩短字符串的情景,即需要释放空间,SDS将需要移除的字符串移除,但是多余出来的的空间不释放,而是保留下来,记录在free里,这样扩展就有多余空间来进行,当然有真正释放空间的方法.

比如"XYXYabcXY\0" 移除所有的X和Y

则len变为3 free变为6

© 著作权归作者所有

下一篇: Redis指令
勤奋的蚂蚁
粉丝 7
博文 51
码字总数 13737
作品 0
海淀
私信 提问
Redis 数据结构之-简单动态字符串(SDS)

Redis采用一种名为简单动态字符串(simple dynamic string,SDS)的数据结构做为默认字符串的表示。 并且在Redis中,只有常量采用默认C语言字符串表示,如果一个字符串是可变的就会采用SDS。...

book
2016/11/18
252
0
Redis 数据结构之SDS

Redis 没有直接使用C语言传统的字符串表示,而是自己构建了一种名为简单动态字符(SDS)串的数据结构 一 SDS 的定义 struct{ int len; // 记录buf数组中已使用的字节数量 int free; // 记录b...

挽袖清风
2018/01/25
10
0
Redis数据结构——SDS,链表

简单动态字符串 struct sdshdr { unsigned int len; //记录buf数组中已使用字节的数量 等于SDS所保存字符串的长度 unsigned int free; // 记录buf数组中未使用字节的数量 char buf[]; //字节...

nao
2016/05/04
108
0
Redis研究-1.简单动态字符串

我们知道,在C字符串中,底层的实现是使用c字符数组来实现的,但是在高性能以及内存安全方面,使用底层的c字符串是满足不了的,举个简单的例子,如果你使用strcat(s,s1)函数,如果在操作之前...

会飞的杨先生
2015/08/24
10K
7
【Redis设计与实现】第2章 简单动态字符串

简单动态字符串 Redis并不直接使用C语言字符串,而是自己构建一套简单动态字符串(simple dynamic string ,SDS)C字符串仅仅在一些无需对字符串进行修改的地方使用,例如打印日志。SDS除了用...

HOT_POT
03/12
9
0

没有更多内容

加载失败,请刷新页面

加载更多

mysql-connector-java升级到8.0后保存时间到数据库出现了时差

在一个新项目中用到了新版的mysql jdbc 驱动 <dependency>     <groupId>mysql</groupId>     <artifactId>mysql-connector-java</artifactId>     <version>8.0.18</version> ......

ValSong
今天
5
0
Spring Boot 如何部署到 Linux 中的服务

打包完成后的 Spring Boot 程序如何部署到 Linux 上的服务? 你可以参考官方的有关部署 Spring Boot 为 Linux 服务的文档。 文档链接如下: https://docs.ossez.com/spring-boot-docs/docs/r...

honeymoose
今天
6
0
Spring Boot 2 实战:使用 Spring Boot Admin 监控你的应用

1. 前言 生产上对 Web 应用 的监控是十分必要的。我们可以近乎实时来对应用的健康、性能等其他指标进行监控来及时应对一些突发情况。避免一些故障的发生。对于 Spring Boot 应用来说我们可以...

码农小胖哥
今天
8
0
ZetCode 教程翻译计划正式启动 | ApacheCN

原文:ZetCode 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远。 ApacheCN 学习资源 贡献指南 本项目需要校对,欢迎大家提交 Pull Request。 ...

ApacheCN_飞龙
今天
5
0
CSS定位

CSS定位 relative相对定位 absolute绝对定位 fixed和sticky及zIndex relative相对定位 position特性:css position属性用于指定一个元素在文档中的定位方式。top、right、bottom、left属性则...

studywin
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部