zoukankan      html  css  js  c++  java
  • redis数据结构-sds

    sds-simple dynamic string简单的动态数组

    1、sds定义

    2、与c字符串比较

    3、sds特性

    1)获取长度时间复杂度为O(1)

    sds中有len长度字段

    2)缓冲器不会溢出

    首先sds有预留空闲free存储空间

    其次如果空间不够,会动态申请

    3)修改字符串最多需要执行N次内存重分配

    重分配策略

    a)空间预分配

    策略是当sds长度小于1m时,预分配空间=sds长度,当大于1m时,预分配1m

    b) 惰性空间释放

    当sds缩短时,程序不立即释放多出来的字节空间,而是使用free属性将这些字节的数量记录起来,以备将来用,可通过API释放这部分空间

    4)可以保存文本或者二进制数据

    c字符串除了末尾之外不能有空字符,否则空字符会被误认为字符串结尾,这就导致了c字符串不能报错图片、音频、视频以及二进制数据;而sds是根据len来判读字符串结尾的

  • 相关阅读:
    [IOI2013]Dreaming
    Lost Cows
    Mobile Service
    [POI2005]Bank notes
    [CTSC2007]动物园zoo
    [CF1093F]Vasya and Array
    [雅礼集训 2017 Day1]市场
    [APIO2014]序列分割
    [CEOI2004]锯木厂选址
    [APIO2010]特别行动队
  • 原文地址:https://www.cnblogs.com/yanwei-wang/p/8072863.html
Copyright © 2011-2022 走看看