5KB
2020-09-08 22:42:48 INFO ConfigCacheUtil:157 - 初始数据: 5541 2020-09-08 22:42:48 INFO ConfigCacheUtil:163 - 压缩耗时: 2 2020-09-08 22:42:48 INFO ConfigCacheUtil:164 - 数据大小: 1236 2020-09-08 22:42:48 INFO ConfigCacheUtil:171 - 解压耗时: 2 2020-09-08 22:42:48 INFO ConfigCacheUtil:172 - 数据大小: 5541
2020-09-08 22:42:48 INFO ConfigCacheUtil:176 - 初始数据: 5541 2020-09-08 22:42:48 INFO ConfigCacheUtil:182 - 压缩耗时: 523 2020-09-08 22:42:48 INFO ConfigCacheUtil:183 - 数据大小: 972 2020-09-08 22:42:48 INFO ConfigCacheUtil:190 - 解压耗时: 85 2020-09-08 22:42:48 INFO ConfigCacheUtil:191 - 数据大小: 5541
2020-09-08 22:42:48 INFO ConfigCacheUtil:196 - 初始数据: 5541 2020-09-08 22:42:48 INFO ConfigCacheUtil:202 - 压缩耗时: 1 2020-09-08 22:42:48 INFO ConfigCacheUtil:203 - 数据大小: 919 2020-09-08 22:42:48 INFO ConfigCacheUtil:210 - 解压耗时: 22 2020-09-08 22:42:48 INFO ConfigCacheUtil:211 - 数据大小: 5541
6MB
2020-09-08 22:44:06 INFO ConfigCacheUtil:158 - 初始数据: 5719269 2020-09-08 22:44:06 INFO ConfigCacheUtil:164 - 压缩耗时: 129 2020-09-08 22:44:06 INFO ConfigCacheUtil:165 - 数据大小: 330090 2020-09-08 22:44:06 INFO ConfigCacheUtil:172 - 解压耗时: 69 2020-09-08 22:44:06 INFO ConfigCacheUtil:173 - 数据大小: 5719269
2020-09-08 22:44:06 INFO ConfigCacheUtil:177 - 初始数据: 5874139 2020-09-08 22:44:06 INFO ConfigCacheUtil:183 - 压缩耗时: 265 2020-09-08 22:44:06 INFO ConfigCacheUtil:184 - 数据大小: 201722 2020-09-08 22:44:06 INFO ConfigCacheUtil:191 - 解压耗时: 81 2020-09-08 22:44:06 INFO ConfigCacheUtil:192 - 数据大小: 5874139
2020-09-08 22:44:06 INFO ConfigCacheUtil:197 - 初始数据: 5874139 2020-09-08 22:44:06 INFO ConfigCacheUtil:203 - 压缩耗时: 42 2020-09-08 22:44:06 INFO ConfigCacheUtil:204 - 数据大小: 115423 2020-09-08 22:44:07 INFO ConfigCacheUtil:211 - 解压耗时: 49 2020-09-08 22:44:07 INFO ConfigCacheUtil:212 - 数据大小: 5874139
Redis 压缩列表压缩列表(ziplist)是列表键和哈希键的底层实现之一。当一个列表键只包含少量列表项,并且每个列表项要么就是小整数值,要么就是长度比较短的字符串,Redis就会使用压缩列表来做列表键的底层实现。
下面看一下压缩列表实现的列表键:
列表键里面包含的都是1、3、5、10086这样的小整数值,以及'hello'、'world'这样的短字符串。
再看一下压缩列表实现的哈希键:
压缩列表是Redis为了节约内存而开发的,是一系列特殊编码的连续内存块组成的顺序型数据结构。
一个压缩列表可以包含任意多个节点,每个节点可以保存一个字节数组或者一个整数值。
看一下压缩列表的示例:
看一下包含五个节点的压缩列表:
节点的encoding属性记录了节点的content属性所保存数据的类型以及长度。
节点的content属性负责保存节点的值,节点值可以是一个字节数组或者整数,值的类型和长度由节点的encoding属性决定。
连锁更新:
每个节点的previous_entry_length属性都记录了前一个节点的长度,那么当前一个节点的长度从254以下变成254以上时,本节点的存储前一个节点的长度的previous_entry_length就需要从1字节变为5字节。
那么后面的节点的previous_entry_length属性也有可能更新。不过连锁更新的几率并不大。
总结:以上为个人经验,希望能给大家一个参考,也希望大家多多支持七叶笔记。