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

网站 移动app开发网站建设 慕课

网站 移动app开发,网站建设 慕课,我想在网站做宣传怎么弄,我的ip地址查询最近面试的时候被问到Redis 的二进制安全相关八股文面试题。Redis二进制安全内容比较多,以下是简单的总结大致的过程,需要深入学习的建议跳过 Redis是基于C语言进行开发的,而C语言中的字符串是二进制不安全的,所以Redis就没有直接…

最近面试的时候被问到Redis 的二进制安全相关八股文面试题。Redis二进制安全内容比较多,以下是简单的总结大致的过程,需要深入学习的建议跳过

Redis是基于C语言进行开发的,而C语言中的字符串是二进制不安全的,所以Redis就没有直接使用C语言的字符串,而是自己编写了一个新的数据结构来表示字符串,这种数据结构称之为简单动态字符串(Simple dynamic string),简称sds。

在C语言中,字符串采用的是一个char数组(柔性数组)来存储字符串,而且字符串必须要以一个空字符串\0来结尾。字符串并不记录长度,所以如果想要获取一个字符串的长度就必须遍历整个字符串,直到遇到第一个\0为止(\0不会计入字符串长度),故而获取字符串长度的时间复杂度为O(n)。

正因为C语言中是以遇到的第一个空字符\0来识别是否到了字符串末尾,因此其只能保存文本数据,不能保存图片、音频、视频和压缩文件等二进制数据,否则可能出现字符串不完整的问题,所以其是二进制不安全的。

Redis中为了实现二进制安全的字符串,对原有C语言中的字符串实现做了改进。如下所示就是一个旧版本的sds字符串的结构定义:

struct sdshdr{int len;//记录buf数组已使用的长度,即SDS的长度(不包含末尾的'\0')int free;//记录buf数组中未使用的长度char buf[];//字节数组,用来保存字符串
}

经过改进之后,如果想要获取sds的长度不用去遍历buf数组了,直接读取len属性就可以得到长度,时间复杂度一下就变成了O(1),而且因为判断字符串长度不再依赖空字符\0,所以其能存储图片、音频、视频和压缩文件等二进制数据,不用担心读取到的字符串不完整。

以上是基于个人总结,如果发现有误,请指出,我立即更正。

http://www.yayakq.cn/news/382220/

相关文章:

  • 自己怎么接单做网站企业网站信息化建设
  • 网页设计与网站建设心得体会吕梁网络推广
  • 网站公司做销售怎么样电脑首页wordpress
  • ps 矢量素材网站快捷做网站
  • 优秀的国内企业网站怎么查网站是否被k
  • 微信网站技术方案杭州高端网站设计公司
  • 南京溧水城市建设集团网站网络推广平台有哪些渠道
  • 自己做网站卖什么名字如何把网站程序做授权网址访问
  • 西南交通建设集团有限公司网站网站改版意见
  • 专业构建网站的公司汽配网站建设成本
  • intitle:网站建设wordpress修改页尾
  • 门户网站建设公司市场哈尔滨网站免费制作
  • 企业文化建设怎么做seo的搜索排名影响因素有哪些
  • 在哪里找给公司做网站优化的人重庆蜡像制作
  • 手机优化器申泽seo
  • 网站建设怎么下载代码卡当网站建设
  • 汕头网站制作哪家强江苏seo推广方案
  • 雄安优秀网站建设哪家好网站需求设计文档
  • 厦门 外贸商城网站制作怎么投放广告是最有效的
  • 百度网站大全首页查权重
  • 典当行网站阿里云虚拟主机怎么建设网站
  • 国外做兼职网站设计做网站后期续费是怎么算的
  • 番禺网站排名优化公司网站建设开发报告论文
  • 帮忙做快站旅游网站河北建设工程信息网停用公告
  • 石家庄外贸网站制作公司万州区建设局官方网站
  • 网站做文件检查可以免费做网站推广的平台
  • 网站推广策划包含哪些内容腾讯云服务器用什么软件做网站
  • 哈尔滨网站改版揭阳城乡建设局网站
  • dedecms网站搬家郑州哪家医院看妇科比较专业
  • 特色的佛山网站建设企业网站如何去做优化