美文网首页
1.4 字符串以及List底层实现

1.4 字符串以及List底层实现

作者: 9cc222f2bb0a | 来源:发表于2018-07-27 21:17 被阅读0次

    Redis 并没有直接使用数据结构来构建键值对,而是基于这些数据结构创建了一个对象系统。

    该对象保存与数据有关的三个属性分别是:type(类型),encoding(编码类型)以及ptr(指向底层实现数据结构的指针)

    1. 如果字符串对象保存的是一个字符串值,并且长度小于等于32字节,那么字符串对象将使用embstr编码的方式来保存(优势:两次空间分配变为一次),但是embstr类型只是只读的,所有修改是需要转换为raw类型。

    2. 如果是浮点数,将会变成字符串保存。

    3. 字符串对象是唯一一种会被其他四种类型对象嵌套的对象。

    4. 当列表对象同时满足以下两个条件时,使用ziplist进行编码,不同时满足时使用linkedlist编码:

        1. 列表对象保存的所有元素长度都小于64字节

        2. 列表对象保存的元素数量少于512个。

    相关文章

      网友评论

          本文标题:1.4 字符串以及List底层实现

          本文链接:https://www.haomeiwen.com/subject/xbaekftx.html