深入了解一下Redis的内存模型!
字符串范例的内部编码有3种,它们的应用场景如下:
示譬喻下图所示: embstr和raw举办区分的长度,是39;是由于redisObject的长度是16字节,sds的长度是9+字符串长度;因此当字符串长度是39时,embstr的长度正好是16+9+39=64,jemalloc正好可以分派64字节的内存单位。 (3)编码转换 当int数据不再是整数,或巨细高出了long的范畴时,自动转化为raw。 而对付embstr,因为着实现是只读的,因此在对embstr工具举办修改时,城市先转化为raw再举办修改,因此,只要是修改embstr工具,修改后的工具必然是raw的,无论是否到达了39个字节。示譬喻下图所示: 2、列表 (1)轮廓 列表(list)用来存储多个有序的字符串,每个字符串称为元素;一个列表可以存储2^32-1个元素。Redis中的列表支持两头插入和弹出,并可以得到指定位置(或范畴)的元素,可以充当数组、行列、栈等。 (2)内部编码 列表的内部编码可所以压缩列表(ziplist)或双端链表(linkedlist)。 双端链表:由一个list布局和多个listNode布局构成;典范布局如下图所示: (编辑:河北网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |