专栏首页charlierororedis 6源码解析之 sds

redis 6源码解析之 sds

redis使用sds(simple dynamic string)实现了字符串的存储。sds实际上就是TLV格式的数据结构。其数据结构主要分为如下5种,主要分为首部和数据部分,首部给出了type和len信息,数据部分用于存储字符串数据。不同的首部可以表示不同长度的字符串数据,如SDS_TYPE_8最大可以表示(28 -1)大小的字符串数据。划分为不同类型的sds首部是为了减少内存浪费。

sds实现了字符串存储的扩展(基于realloc命令)和收缩(使用malloc重新申请复制数据)以及字符串的一般操作,如大小写转换,截取,拼接等。在使用sds时要注意内存变动可能导致的性能问题。

源代码解析参见sds.csds.h

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • redis 6源码解析之 sds

    redis使用sds(simple dynamic string)实现了字符串的存储。sds实际上就是TLV格式的数据结构。其数据结构主要分为如下5种,主要分为...

    charlieroro
  • openshift 4.3 Istio的搭建(istio 系列一)

    注:不建议使用openshift 1.11(即kubernetes 3.11)安装istio,可能会出现如下兼容性问题,参见此issue

    charlieroro
  • 简单了解C语言内嵌汇编

    最近看自旋锁的实现,自选锁的循环查找锁的主要实现类似如下,该实现使用到了内嵌的汇编(摘自sanos内核,源代码有2处实现,一处使用intel汇编,是没有问题的,...

    charlieroro
  • redis 6源码解析之 sds

    redis使用sds(simple dynamic string)实现了字符串的存储。sds实际上就是TLV格式的数据结构。其数据结构主要分为如下5种,主要分为...

    charlieroro
  • 数据分析EPHS(6)-使用Spark计算数列统计值

    前两篇中咱们分别介绍了使用Excel、Python和Hive SQL计算统计值,这次咱们使用Spark SQL来计算统计值。

    石晓文
  • 大数据24小时 | 清数科技发布大数据一体机“NEO” 欧比特拟6.2亿元布局大数据行业

    欧比特复牌之后, 6.2亿元收购两家企业加速大数据产业落地 ? 欧比特公司发布公告称,公司于5月24日正式复牌,并将以6.2亿元的价格收购测绘公司绘宇智能以及大...

    数据猿
  • 宝马、英特尔、Mobileye三强合作,欲建立无人驾驶汽车技术行业标准

    【新智元导读】昨天,宝马、英特尔及Mobileye联合举行发布会,宣布打造全新智能驾驶技术平台。宝马预计在2021年正式推出全自动无人驾驶汽车,这也是车企巨头首...

    新智元
  • Oracle和MySQL的数据导入,差别为什么这么大

    经常会有一些朋友咨询我一些数据库的问题,我注意到一个很有意思的现象,凡是数据导入的问题,基本上都是Oracle类的,MySQL类的问题脑子里想了下竟然一次都没有...

    jeanron100
  • 【数据挖掘项目】Airbnb新用户的民宿预定结果预测

    摘要 本文主要根据对Airbnb 新用户的民宿预定结果进行预测,完整的陈述了从 数据探索到 特征工程到 构建模型的整个过程。 其中: 1数据探索部分主要基于 p...

    Datawhale
  • Ubuntu 12.04禁用客人会话

    转自:http://www.linuxidc.com/Linux/2012-06/62700.htm

    forrestlin

扫码关注云+社区

领取腾讯云代金券