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

做网站销售好累叮当快药网上商城

做网站销售好累,叮当快药网上商城,上饶便宜的网站建设,一整套ppt背景图片Redis对 String 类型实现了很多优化#xff0c;通过以下三个重要的优化点来解释#xff1a; 1. 简单动态字符串#xff08;SDS#xff09; Redis 的 String 类型内部采用简单动态字符串#xff08;SDS#xff09;来管理字符串。相比于 C 语言的原生字符串#xff0c;S…Redis对 String 类型实现了很多优化通过以下三个重要的优化点来解释 1. 简单动态字符串SDS Redis 的 String 类型内部采用简单动态字符串SDS来管理字符串。相比于 C 语言的原生字符串SDS 有以下优势 能够动态地改变自己的长度避免了不必要的内存分配和拷贝操作SDS 本身有一个长度属性可以快速计算字符串的长度SDS 可以与 C 语言原生字符串互相转换方便对 C 语言中一些函数的使用。 SDS 源码 struct sdshdr {int len; // 字符串实际长度int free; // 字符串剩余空间char buf[]; // 字符串数据 };源码解释redis 源码实现 sds 函数定义了 SDS 的各种操作函数例如 sdsnew() 函数用于新建 SDS 字符串sdsempty() 函数用于初始化一个空 SDS 字符串等。 2. 共享字符串 当多个客户端传入相同的字符串参数时Redis 会把相同字符串的内部指针指向同一内存地址这些指针共享同一个字符串对象。这种优化可以减少内存占用提高性能。 robj *lookupShared(const char *s, size_t len) {dictEntry *de dictFind(server.shared.dict,s);if (de) {robj *shared dictGetVal(de);return shared;}robj *shared createStringObject(s,len);dictAdd(server.shared.dict, s, shared);return shared; }robj *createShared(const char *ptr, size_t len) {robj *sobj createObject(OBJ_STRING,sdsnewlen(ptr,len));sobj-encoding OBJ_ENCODING_RAW; // 设置编码方式为RAWreturn sobj; }源码解释这里有两个相关函数lookupShared() 用于在 Redis 的共享字符串池中查找指定的字符串如果字符串存在则返回字符串对象如果字符串不存在则新建字符串对象并存储在共享字符串池中。createShared() 函数则是用于创建新的共享字符串对象。 3. 编码的优化 Redis 的 String 类型支持多种编码方式如 INT、EMBSTR、RAW 等。根据不同的编码方式和数据类型Redis 选择最适合的编码方式来储存数据从而避免了冗余的存储空间。 int encodingType(robj *o) {if (o-encoding OBJ_ENCODING_INT) {return OBJ_ENCODING_INT;} else if (o-encoding OBJ_ENCODING_EMBSTR) {return OBJ_ENCODING_EMBSTR;} else {return OBJ_ENCODING_RAW;} }void setStringObject(robj *o, const char *s, size_t len) {if (o-encoding OBJ_ENCODING_INT) {// 释放原有的整数值空间decrRefCount(o);// 创建新的Raw编码字符串对象o createStringObject(s,len);} else if (o-encoding OBJ_ENCODING_EMBSTR) {// 释放原有的Embstr编码字符串空间sdsfree(o-ptr);o-ptr zmalloc(len);memcpy(o-ptr, s, len);o-encoding OBJ_ENCODING_RAW;} else {// 设置Raw编码字符串值o-ptr sdscpylen(o-ptr, s, len);o-encoding OBJ_ENCODING_RAW;} }源码解释这里有两个相关函数encodingType() 用于返回某个值采用的编码方式可以检查一个字符串对象或列表对象采用的编码方式另一个函数 setStringObject() 用于设置一个字符串对象的值根据需要选择适当的编码方式。 4. 总结时刻 回答出来以上三点表明你对 Redis 的 String 类型的源码是有研究的而不是每天只顾 CRUD只顾写业务。 另外也能表明你的技术深度面试官一定会对你另眼相看哟加油
http://www.w-s-a.com/news/283387/

相关文章:

  • 无锡手机网站建设服务苏州展厅设计企业
  • 无锡网站制作需要多少钱北京二次感染最新消息
  • 网站开发视频播放无画面杭州房产信息网官网
  • 网站开发 改进如何创建公众号平台
  • wordpress网站响应很慢只有asp网站代码可以重新编译吗
  • 哪个网站教做饭做的好wordpress热点文章
  • 可以做推广东西的网站重庆网站建设 重庆网站制作
  • 珠海网站建设培训学校wordpress去版权 合法
  • 建设食品商购网站学校网站设计实验报告
  • 建个网站多少钱沭阳奥体小区做网站的
  • 广州视频网站建站公司php网页设计作业代码
  • 成都公司网站设计如何制作网址最简单的方法
  • 温州 做网站福建住房城乡建设部网站
  • 网站自动化采集成都网站设计费用
  • 广东专业网站定制建设淘宝网站的人员组织结构
  • 网站改版seo无锡有多少家公司
  • h5美食制作网站模板下载wordpress大学百度云
  • 零陵做网站建立网站的公司平台
  • 某企业电子商务网站建设网站开发实验结论
  • 自己做的网站突然打不开杭州哪些做网站公司好
  • 株洲专业建设网站免费cms内容管理系统
  • 网上建立网站赚钱网站建设方案书纯文字
  • 专业网站设计哪家好it外包合同模板
  • 个人网站备案都需要什么中小企业服务网
  • 佛山网站建设哪个在公司网站投简历该怎么做
  • 八戒网站做推广老域名全部失效请拿笔记好
  • iss服务器网站建设甘肃建设厅网站执业注册中心
  • 域名访问网站 过程网站 免费 托管运营
  • 下单的网站建设教程wordpress php7.1
  • 爱网站查询怎么做网站的图片跳转