设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 数据 创业者 手机
当前位置: 首页 > 教程 > 正文

Redis zipmap内存布局和扩展收缩分析

发布时间:2017-01-08 10:30 所属栏目:61 来源:千石
导读:Redis被称为key/value应用中的瑞士军刀,除了其丰富的数据结构支持,更重要的是高效的内存使用,分析源码可以发现作者使用每一个byte都精打细算。在hashtable实现中,Redis引入了zipmap数据结构,保证在hashtable刚创建以及元素较少时,用更少的内存来存储,

  【技术】Redis被称为key/value应用中的瑞士军刀,除了其丰富的数据结构支持,更重要的是高效的内存使用,分析源码可以发现作者使用每一个byte都精打细算。在hashtable实现中,Redis引入了zipmap数据结构,保证在hashtable刚创建以及元素较少时,用更少的内存来存储,同时对查询的效率也不会受太大的影响。下面就以源码和例子结合的方式来分析一下zipmap的内存布局。

  先来看一下zipmap提供的和存储相关的3个API

  zipmapNew:创建一个zipmap字符串。zipmap创建时只有2个字节,后面会随着set和delete操作动态扩展和收缩。

  zipmapSet: 加入新的key/value或者修改zipmap中已有key对应的value。

  zipmapDel:从zipmap中删除key/value。

  下面给出一段伪代码并分析其内存布局的变化,如下图:

(编辑:ASP站长网)

    网友评论
    推荐文章
      热点阅读