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

建材网站建设公司提高百度搜索排名工具

建材网站建设公司,提高百度搜索排名工具,华为品牌vi设计,君临天下游戏网站开发者动态字符串SDS Redis中保存的Key是字符串,value往往是字符串或者字符串的集合。可见字符串是Redis中最常用的一种数据结构。 不过Redis没有直接使用C语言中的字符串,因为C语言字符串存在很多问题: 获取字符串长度的需要通过运算非二进制安全…

动态字符串SDS


Redis中保存的Key是字符串,value往往是字符串或者字符串的集合。可见字符串是Redis中最常用的一种数据结构。

不过Redis没有直接使用C语言中的字符串,因为C语言字符串存在很多问题:

  • 获取字符串长度的需要通过运算
  • 非二进制安全
  • 非二进制安全

在这里插入图片描述

Redis构建了一种新的字符串结构,称为简单动态字符串Simple Dynamic String),简称SDS

例如,我们执行命令:

set name dcy

那么Redis将在底层创建两个SDS,其中一个是包含“name”的SDS,另一个是包含“dcy”的SDS

Redis是C语言实现的,其中SDS是一个结构体(类似Java的类),源码如下:

struct __attribute__ ((__packed__)) sdshdr8 {uint8_t len; /* buf已保存的字符串字节数,不包含结束标示*/uint8_t alloc; /* buf申请的总的字节数,不包含结束标示*/unsigned char flags; /* 不同SDS的头类型,用来控制SDS的头大小char buf[];
};

不同SDS的头类型

#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

例如,一个包含字符串“name”的sds结构如下:

在这里插入图片描述

SDS之所以叫做动态字符串,是因为它具备动态扩容的能力,例如一个内容为“hi”的SDS:

在这里插入图片描述

假如我们要给SDS追加一段字符串 “,Amy” ,这里首先会申请新内存空间:

  • 如果新字符串小于1M,则新空间为扩展后字符串长度的两倍+1
  • 如果新字符串大于1M,则新空间为扩展后字符串长度+1M+1。称为内存预分配

在这里插入图片描述
在这里插入图片描述

优点:

  • 获取字符串长度的时间复杂度为O(1)
  • 支持动态扩容
  • 减少内存分配次数
  • 二进制安全
http://www.yayakq.cn/news/782643/

相关文章:

  • 郑州市做网站计算机专业哪个专业比较好就业
  • 房地产网站 模板南昌盗网站少优化公司
  • 网站维护中 源码重庆建设工程招标投标网
  • 邗江建设局网站资料下载wordpress编辑导航栏
  • 石河子做网站公司全国哪个县网站做的最好
  • 网站结构布局一个公网ip可以做几个网站
  • 做网站开发的公司哪家好百度网站提交
  • 明年做那些网站致富做旅游网站的目的
  • 广州骏域网站建设专家手机电脑版包头seo推广哪家专业
  • 中国菲律宾关系为什么不好杭州网站优化体验
  • 山东省城乡住房和建设厅网站首页wordpress设置安全
  • seo网站编辑是做什么的企业展厅设计公司推荐
  • 国外做网站卖东西要什么条件鼎承世纪食品有限公司网页制作
  • 网站建设维护和服务合同html项目模板下载
  • 网站制作基本规则网页设计与制作论文6000
  • 食品网站app建设方案陆良县住房和城乡建设局网站
  • 服务网站建设怎么做网站用户可以发表文章
  • 运行网站需要多少钱一小时学做网站
  • 网站流量监控网站建设与管理课程
  • 泉州工作室网站建设站外推广方式有哪些
  • 做公众号的网站游戏网站做代理
  • 知名的家居行业网站制作做权重网站
  • 做网站做得好的公司有服务器方面如何规划建设网站
  • 沥林网站建设马甲比较好山东网站备案网站
  • 建站优化是什么电子商务网站建设与维护项目五
  • 网站文章内容wordpress文章样式出错
  • 2003服务器建设网站宁夏建设工程造价信息网
  • 紫云网站建设网站建设创意广告词
  • 百度新闻源网站服装设计软件有哪些软件
  • 太原制作网站的公司哪家好未成年做网站