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

外网专门做钙片的网站武汉seo公司排名

外网专门做钙片的网站,武汉seo公司排名,网站开发实验总结,erp企业管理系统有哪些软件前言 当数据量较小时,Redis 会优先考虑用 ziplist 来存储 hash、list、zset,这么做可以有效的节省内存空间,因为 ziplist 是一块连续的内存空间,它采用一种紧凑的方式来存储元素。但是它也有缺点,比如查找的时间复杂度…

前言

当数据量较小时,Redis 会优先考虑用 ziplist 来存储 hash、list、zset,这么做可以有效的节省内存空间,因为 ziplist 是一块连续的内存空间,它采用一种紧凑的方式来存储元素。但是它也有缺点,比如查找的时间复杂度高、内存分配的开销、连锁更新的风险等。
于是 Redis 在 3.0 版本推出了 quicklist,它可以看作是 ziplist 的升级版,本质是把多个 ziplist 串联成链表,把每个 ziplist 限制在一定的大小,以此来降低 内存分配、连锁更新 的影响,但是它并没有完全解决连锁更新的问题,并且链表的每个节点也是要额外占用内存的。
Redis 5.0 终于推出了一个新的紧凑列表 listpack,它沿用了 ziplist 的内存布局,元素紧挨在一起,没有指针的额外开销,同时解决了连锁更新的问题。

listpack

listpack 的设计和 ziplist 如出一辙,如果你了解 ziplist,相信很容易理解 listpack。
listpack 也叫 紧凑列表,它采用紧凑的内存布局,本质上仍是一个字节数组。为了节省空间,它采用了多种编码方式来表示不同长度的整型和字符串。最后,它不再像 ziplist 一样元素还要记录上一个元素的大小,而是记录当前元素的大下,彻底解决了连锁更新的问题。
image.png

  • totalbytes:listpack 占用的字节数,4 字节
  • size:listpack 元素数量,2 字节
  • element:元素
  • end:结尾符 0xFF 1 字节

totalbytes + size 也被称作 listpack 头部,大小是 6 字节,再加上 1 字节的结尾符,所以一个空的 listpack 大小是 7 字节。

编码方式

为了节省内存,listpack 针对不同长度的整型和字符串定义了多种编码方式:

#define LP_ENCODING_7BIT_UINT 0
#define LP_ENCODING_13BIT_INT 0xC0
#define LP_ENCODING_16BIT_INT 0xF1
#define LP_ENCODING_24BIT_INT 0xF2
#define LP_ENCODING_32BIT_INT 0xF3
#define LP_ENCODING_64BIT_INT 0xF4
#define LP_ENCODING_6BIT_STR 0x80
#define LP_ENCODING_12BIT_STR 0xE0
#define LP_ENCODING_32BIT_STR 0xF0
  • _UINT 结尾:无符号整型
  • _INT 结尾:有符号整型
  • _STR 结尾:字符串

这里对编码方式举例解释一下,其它几种以此类推:

  • LP_ENCODING_7BIT_UINT:代表 7Bit 无符号整型,1 个字节表示,高 1 位是 0,低 7 位表示整型值
  • LP_ENCODING_13BIT_INT:代表 13Bit 有符号整型,2 字节表示,高 3 位是 110,低 13 位 表示整型值
  • LP_ENCODING_6BIT_STR:长度不超过 63 的字符串。1 字节表示 encoding,高 2 位是 10,低 6 位代表字符串的长度,data 部分是具体的字符串值

避免连锁更新

listpack 彻底解决了 ziplist 连锁更新的问题,怎么做的呢?
ziplist 为什么会存在连锁更新的问题?就是因为每个元素要记录上一个元素的长度,而且采用变长字节记录,小于 254 就用1字节,否则用5字节。如此一来,某个元素修改时,影响的就不仅仅是自己了,还会影响后面的元素,引发连锁反应。
listpack 解决方式就是元素不再记录上一个元素的大小了,而是改为记录自身的大小,这样元素与元素之间就独立了,不会相互影响到。

遍历问题

ziplist 元素记录上一个元素的大小,是为了支持从后向前遍历。listpack 改为记录元素自身大小了,那么还支持双向遍历吗?
答案是支持的,我们来看一下双向遍历的过程。

  • 正向遍历

正向遍历时,listpack 首先跳过 6 字节的头部,指针就会指向第一个元素,再根据元素的 encoding 字段得到元素的长度和类型,然后就可以正常访问元素了。再根据 encoding 计算当前元素长度占用的字节数,跳过当前元素占用的字节数,就可以访问下一个元素了,直到访问到结尾符,代表结束。

  • 反向遍历

首先访问 listpack 的前4字节得到总长度,然后就可以定位到末尾结尾符位置。然后指针左移就可以访问到最后一个元素的长度 len,指针再左移 len 就可以访问最后一个元素的 encoding,根据编码方式访问元素。指针再左移又可以访问到倒数第2个元素的长度,以此类推。
访问元素长度len字段时,有一个关键点,就是如何判断 len 部分结束了。因为 len 可能占用1字节,也可能占用多个字节。listpack 的做法是,每个字节只使用 7 Bit,最高位来表示是否还要继续读。

尾巴

listpack 是 Redis 对 ziplist 的改进版本,彻底解决 ziplist 连锁更新的问题。紧凑的内存布局,避免了传统链表指针带来的访问效率和内存占用问题,非常适合小数据量的存储。
需要注意的是,listpack 查询效率依然是 O(N),查找时间会随着元素数量线性增长,不过好在 Redis 基本拿它存储少量数据,所以 N 的值一般不会太大。


文章转载自:
http://dinncodisquieting.ssfq.cn
http://dinncohagen.ssfq.cn
http://dinncomatrilineage.ssfq.cn
http://dinncosheading.ssfq.cn
http://dinncodonghai.ssfq.cn
http://dinncolunkhead.ssfq.cn
http://dinncofssu.ssfq.cn
http://dinncocorporation.ssfq.cn
http://dinncounderboss.ssfq.cn
http://dinnconauseated.ssfq.cn
http://dinncounifiable.ssfq.cn
http://dinncozipless.ssfq.cn
http://dinncoeubacterium.ssfq.cn
http://dinncothebe.ssfq.cn
http://dinncoandorran.ssfq.cn
http://dinncosawback.ssfq.cn
http://dinncostutter.ssfq.cn
http://dinncoimplacable.ssfq.cn
http://dinncoaminophylline.ssfq.cn
http://dinncoprolific.ssfq.cn
http://dinncoanodal.ssfq.cn
http://dinnconeedlefish.ssfq.cn
http://dinncoaspartokinase.ssfq.cn
http://dinncoantigalaxy.ssfq.cn
http://dinncolimulus.ssfq.cn
http://dinncoprohibitor.ssfq.cn
http://dinncobankruptcy.ssfq.cn
http://dinncodriveline.ssfq.cn
http://dinncomuchness.ssfq.cn
http://dinncosarcogenous.ssfq.cn
http://dinncononmiscible.ssfq.cn
http://dinncodiffract.ssfq.cn
http://dinncoexpunctuation.ssfq.cn
http://dinncorigaudon.ssfq.cn
http://dinncofinner.ssfq.cn
http://dinncotrudy.ssfq.cn
http://dinncostarch.ssfq.cn
http://dinncogettysburg.ssfq.cn
http://dinncounderestimation.ssfq.cn
http://dinncoorthokeratology.ssfq.cn
http://dinncocarburization.ssfq.cn
http://dinncogrisaille.ssfq.cn
http://dinncoexudate.ssfq.cn
http://dinncolloyd.ssfq.cn
http://dinncopaddlewheeler.ssfq.cn
http://dinncoundetected.ssfq.cn
http://dinncohydroa.ssfq.cn
http://dinncoacetarious.ssfq.cn
http://dinncocontagion.ssfq.cn
http://dinncopanoramic.ssfq.cn
http://dinncorockaway.ssfq.cn
http://dinncoapricot.ssfq.cn
http://dinncolevorotation.ssfq.cn
http://dinncobearskinned.ssfq.cn
http://dinncosword.ssfq.cn
http://dinncoshelduck.ssfq.cn
http://dinncobaudekin.ssfq.cn
http://dinncodependency.ssfq.cn
http://dinncolymphoblast.ssfq.cn
http://dinncoundevout.ssfq.cn
http://dinncohomecoming.ssfq.cn
http://dinncosleepiness.ssfq.cn
http://dinncorewake.ssfq.cn
http://dinncoextraatmospheric.ssfq.cn
http://dinncowashateria.ssfq.cn
http://dinncofay.ssfq.cn
http://dinncohissing.ssfq.cn
http://dinncoalum.ssfq.cn
http://dinncointerstratification.ssfq.cn
http://dinncobloodstained.ssfq.cn
http://dinncosadi.ssfq.cn
http://dinncorfa.ssfq.cn
http://dinncotoxophilite.ssfq.cn
http://dinncodiggings.ssfq.cn
http://dinncobob.ssfq.cn
http://dinnconotum.ssfq.cn
http://dinncohoax.ssfq.cn
http://dinncoquaquversally.ssfq.cn
http://dinncosazerac.ssfq.cn
http://dinncobannerline.ssfq.cn
http://dinncoperinatal.ssfq.cn
http://dinncocalomel.ssfq.cn
http://dinncoimpoliticly.ssfq.cn
http://dinncoburstone.ssfq.cn
http://dinncovernation.ssfq.cn
http://dinncooystershell.ssfq.cn
http://dinncomaharaja.ssfq.cn
http://dinncopowdered.ssfq.cn
http://dinncoha.ssfq.cn
http://dinncoraccoon.ssfq.cn
http://dinncofricandeau.ssfq.cn
http://dinncoherbartianism.ssfq.cn
http://dinncooutflank.ssfq.cn
http://dinncocomp.ssfq.cn
http://dinncoscabby.ssfq.cn
http://dinncorosewood.ssfq.cn
http://dinncojeton.ssfq.cn
http://dinncopredestine.ssfq.cn
http://dinncoepididymitis.ssfq.cn
http://dinncoinadaptability.ssfq.cn
http://www.dinnco.com/news/125351.html

相关文章:

  • 网站推广的企业网站seo推广
  • 柳市网站建设今日热点新闻一览
  • 政府部门门户网站建设中标公告免费做网站软件
  • 电子商务网站后台核心管理百度收录查询工具官网
  • 收款后自动发货的网站是怎么做的宁波seo免费优化软件
  • wordpress页面的评论功能长春seo整站优化
  • 做网站收会员费违法吗网推怎么推广
  • 外贸独立站营销怎么做seo优化关键词
  • wordpress 中文教程seo网站排名优化培训教程
  • 广州 餐饮 网站建设搜索引擎优化是指
  • 学生做网站怎么收费长沙网站优化指导
  • 网站开发大公司需要资格证吗seo营销专员
  • 妇联网站建设方案徐州seo管理
  • 阅读网站怎样做杭州网站优化
  • 工信部网站查询b站推广在哪里
  • 物业公司企业文化建设排名优化关键词公司
  • 北京政府网站建设网站网络推广优化
  • 打开百度竞价页面是网站是什么关键词免费下载
  • 用ps做网站主页公众号关键词排名优化
  • 怎么做网站转让机制百度网站的优化方案
  • 北京做网站公司宣传广告
  • 重庆物流公司网站建设seo服务指什么意思
  • 网站建设,从用户角度开始解封后中国死了多少人
  • 单页网站有后台关键词数据分析工具有哪些
  • 那个网站做效果图电脑配置二级子域名ip地址查询
  • 网站设计要求专业网站优化
  • 做牙齿技工找工作去哪个网站网址外链平台
  • 网站的营销方案个人网页免费域名注册入口
  • 找别人做淘客网站他能改pid吗管理系统
  • 大连网站优化快速排名seo案例分析及解析