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

dedecms怎么制作网站网站开发交互原型标注图

dedecms怎么制作网站,网站开发交互原型标注图,莱芜网络推广公司哪里有,网站建设的书 推荐动态字符串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/936510/

相关文章:

  • html5个人网站模板个人网站建设联系
  • 家装网站建设多少钱校园社交网站开发
  • 服装定制网站源码网站开发实验总结
  • 怎么样在网上建设网站挣钱天津市工商网站查询企业信息
  • 做网站gif代码中小网站 广告费
  • 柳州住房和城乡建设局网站建设自己网站软件下载
  • 手机管理网站模板下载安装下载建设网站软件
  • 网站开发与网页设计文网站建设服务费记入什么科目
  • 哪个网站可以做ppt模板广西南宁网站策划
  • 个人网站备案名字怀化网站定制
  • 公司做网站算什么费用微信推广方案范文
  • 图们市建设局网站建设医院网站ppt模板下载
  • wordpress 网站wordpress实时聊天
  • 线上做汉语教师网站网片式防护围栏
  • 做一个网站赚钱吗php工程师
  • 深圳网站建设联雅八零云自助建站免费建站平台
  • 做网站平台公司鹤壁企业网站建设
  • 要加强县门户网站的建设管理科技期刊网站建设
  • 一级域名网站建设wordpress win8 主题下载
  • 注册完域名之后怎么找到网站wordpress register_taxonomy
  • 网站软件开发招聘太原网站建设质量推荐
  • 怎么制作个人网站淄博机关建设网站
  • 有关网站开发的参考文献广州网站建设推广公司
  • 昆明网站托管企业广东省第二中医院官网进入公众号
  • 小程序源码大全肇庆seo排名外包
  • 城乡建设部网站安全员证书查询做网站怎么qq邮箱验证
  • 中铁建设投资集团有限公司招聘网站线上商城运营的主要工作
  • 做网站必须有框架么产品推广的句子
  • 手车做网课网站多少网络销售的方法和技巧
  • 海口h5建站传动设备 技术支持 东莞网站建设