当前位置: 首页 > wzjs >正文

信息技术会考做网站网站快速排名推广软件

信息技术会考做网站,网站快速排名推广软件,易营宝智能建站,趣php网站开发实战代码目录 1、背景2、SDS底层实现 1、背景 redis作为高性能的内存数据库,对字符串操作(如键、值的存储)有极高的要求。c语言原生字符串(以\0结尾的字符串数据)有一些缺点:长度计算需要遍历(O(n)时间…

目录

  • 1、背景
  • 2、SDS底层实现

1、背景

redis作为高性能的内存数据库,对字符串操作(如键、值的存储)有极高的要求。c语言原生字符串(以\0结尾的字符串数据)有一些缺点:长度计算需要遍历(O(n)时间复杂度)、频繁内存重分配、二进制不安全、无缓冲区管理。为了解决这些问题,redis使用了SDS(Simple Dynamic String),在兼容c字符串的同时,提供了更高效、更安全的能力。

2、SDS底层实现

SDS底层结构体如下:

//redis 5+已弃用
struct __attribute__ ((__packed__)) sdshdr5 {unsigned char flags; /* 3 lsb of type, and 5 msb of string length */char buf[];
};//存储长度范围:0~255(2的8次方减1)
struct __attribute__ ((__packed__)) sdshdr8 {uint8_t len; /* used */uint8_t alloc; /* excluding the header and null terminator */unsigned char flags; /* 3 lsb of type, 5 unused bits */char buf[];
};//存储长度范围:256~65535(2的16次方减1)
struct __attribute__ ((__packed__)) sdshdr16 {uint16_t len; /* used */uint16_t alloc; /* excluding the header and null terminator */unsigned char flags; /* 3 lsb of type, 5 unused bits */char buf[];
};//存储长度范围:656536~(2^32-1)
struct __attribute__ ((__packed__)) sdshdr32 {uint32_t len; /* used */uint32_t alloc; /* excluding the header and null terminator */unsigned char flags; /* 3 lsb of type, 5 unused bits */char buf[];
};//存储长度范围:大于等于2^32字节
struct __attribute__ ((__packed__)) sdshdr64 {uint64_t len; /* used */uint64_t alloc; /* excluding the header and null terminator */unsigned char flags; /* 3 lsb of type, 5 unused bits */char buf[];
};

根据存储字符串的大小使用不同的sdshdr结构,其字段含义为:

字段名含义
len字符串实际长度(已用字节数)
alloc分配的总容量(不包括头部和结尾的\0)
flagsSDS类型
buf[]存储实际数据

flags代表的宏定义如下:

#define SDS_TYPE_5  0
#define SDS_TYPE_8  1
#define SDS_TYPE_16 2
#define SDS_TYPE_32 3
#define SDS_TYPE_64 4

SDS的特性如下:

特性实现原理
O(1)长度获取直接读取len字段,无需遍历
二进制安全通过len记录字节数(而非依赖\0),可存储任意二进制数据
内容预分配扩容时按规则分配额外空间,减少重分配次数
惰性释放缩容时不立即释放内存,通过alloc字段记录剩余空间,供后续操作复用
兼容c字符串在buf末尾自动追加\0,可直接传递buf给c函数
http://www.dtcms.com/wzjs/438319.html

相关文章:

  • 江门建设局网站搜索引擎关键词的工具
  • 中小企业网站的建设实践报告企业seo培训
  • 下载网站后怎么做seo外包服务项目
  • 高端平面设计作品网站百度竞价外包
  • 怎么免费发布网站seo快速排名代理
  • 广西建设网桂建云官网seo广告投放是什么意思
  • 订货系统怎么优化一个网站
  • 门户网站改版建议搜索引擎外部链接优化
  • 展示型网站制作东莞发布最新通告
  • 太原做网站的公司程序员培训班要多少钱
  • 可拖拽建设网站没有了吗房地产营销策略有哪些
  • 网站的引导页怎么做的百度问答app下载
  • 网站开发详细设计免费自动推广手机软件
  • 一级a做愛网站网页开发公司
  • 衡水做网站什么是网站推广优化
  • 网站建设行业2017企业查询官网
  • 华为网站建设如何自己制作网站
  • 男给女做性按摩网站网站seo怎么做
  • 怎样自己做公司网站网站优化推广平台
  • 在社交网站开发外国客户资源猫
  • 做微信小程序网站如何在百度上推广自己
  • 天河岗顶棠下上社网站建设关键词优化策略有哪些
  • 免费网站建设排行青岛推广优化
  • 重庆企业做网站多少钱广告公司名字
  • 汽车网站建设公司哪家好海淀区seo搜索引擎优化企业
  • wordpress打开xml-rpc夫唯seo教程
  • wordpress slider代码广告优化师
  • 网站开发java架构网络营销服务有哪些
  • 肇庆网站开发哪家专业杭州优化seo公司
  • 饿了么网站怎么做的线上培训机构排名前十