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

制作网站方法网站开发干啥的

制作网站方法,网站开发干啥的,番禺网站建设服务,旅游网站技术流程图#xff08;课程总结自b站黑马程序员课程#xff09; 一、引言 Redis中保存的Key是字符串#xff0c;value往往是字符串或者字符串的集合。可见字符串是Redis中最常用的一种数据结构。 不过Redis没有直接使用C语言中的字符串#xff0c;因为C语言字符串存在很多问题课程总结自b站黑马程序员课程 一、引言 Redis中保存的Key是字符串value往往是字符串或者字符串的集合。可见字符串是Redis中最常用的一种数据结构。 不过Redis没有直接使用C语言中的字符串因为C语言字符串存在很多问题 ①获取字符串长度的需要通过运算 ②非二进制安全指‘/0’字符的读取问题。 ③不可修改 Redis构建了一种新的字符串结构称为简单动态字符串Simple Dynamic String简称SDS。 二、源码分析 struct __attribute__ ((__packed__)) sdshdr5 {unsigned char flags; /* 3 lsb of type, and 5 msb of string length */char buf[]; }; 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[]; }; 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[]; }; 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[]; }; 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[]; };#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 以sdshdr8为例进行分析 struct __attribute__ ((__packed__)) sdshdr8 {uint8_t len; //已使用字符串字节数不包括结束标志uint8_t alloc; //申请总字节数不包括结束标志unsigned char flags; //SDS头信息char buf[]; }; 这个的uint8_t len记录的字节长度8位二进制的最大值为255也就是可以记录最大255字节数的字符串。c语言中char的占用的字节数为1也就是sdshdr8可以记录长度为255的字符串。 三、结构分析 例如一个包含字符串“name”的sds结构如下 SDS之所以叫做动态字符串是因为它具备动态扩容的能力例如一个内容为“hi”的SDS 假如我们要给SDS追加一段字符串“,Amy”这里首先会申请新内存空间 如果新字符串小于1M则新空间为扩展后字符串长度的两倍1 如果新字符串大于1M则新空间为扩展后字符串长度1M1。称为内存预分配。 申请分配内存需要Linux从用户态切换到内核态这个过程需要运用的资源相当多内存预分配可以在很大程度上节省资源分配 四、优点  ①获取字符串长度的时间复杂度为O(1)。 ②支持动态扩容。 ③减少内存分配次数。 ④二进制安全。
http://www.pierceye.com/news/946541/

相关文章:

  • 网站SEO容易做吗网络链接推广
  • 建立免费公司网站自适应型网站建设费用
  • 郑州大学现代远程教育《网页设计与网站建设》课程考核要求云南网站建设企业
  • 电商网站的支付功能广州建设诚信评分网站
  • 网站在哪里建立刷推广
  • 网站上的公告怎么做参考文献太原工程建设招投标信息网站
  • 网站建设找云尚网络asp网站文件
  • 广州的企业网站建设网站推广途径和推广要点
  • 如何保存个人网站东营网红餐厅
  • 网站自助建站湖南企业网站建设
  • 网站设计开发网站企业网站推广方案范文
  • 金峰辉网站建设手机系统下载
  • 网站品牌推广公司天津企业网站建设开发维护
  • zencart 网站入侵网络推广讲师培训
  • 如何做建议的网站wordpress自动发布网站
  • 广州seo网站推广公司个人站长怎么做企业网站
  • 免费看电视剧的网站2021传媒公司名字大全免费
  • 宝塔面板怎么搭建网站wordpress怎么自己写代码
  • 张家界网站建设培训机构管理系统哪个好
  • 网站开发语言开发网站建设和网站开发
  • 上海哪家做网站关键词排名西安到北京高铁几小时
  • 网站后台怎么添加图片大连精美网站制作
  • 电子商务网站建设规划说明书长沙百度快速排名
  • 自由建网站的网络程序在哪建设网站
  • 做u盘的老外网站黑龙江省住房和城乡建设厅官网
  • 网站logo如何替换wordpress怎么实现付费可见
  • 广州网站建设公司排行南宁企业网站建站
  • 网站优化总结报告个人博客网
  • 愿景 做中国最受欢迎的互联网网站找小程序
  • 重庆seowhy整站优化即时设计是什么软件