Redis-0x06-zipmap
数据类型的编码方式。
1 zipmap数据结构
1.1 结构图
1.2 字段解释
1.2.1 zipmap
字段 | 长度 | 语义 |
---|---|---|
zmlen | 1 byte | zipmap实例中存储了多少个键值对,也就是entry的数量。 |
entry | ? | zipmap中存储的每个键值对。 |
end | 1 byte | zipmap的结束标识符。 |
1.2.2 entry
字段 | 长度 | 语义 |
---|---|---|
len | 1 byte \ 5bytes | key的长度,len的编码方式根据key的长度而定。 |
key | ? | 键值对key的内容。 |
len | 1 byte \ 5bytes | value的长度,len的编码方式根据value的长度而定。 |
free | 1 byte | 空闲空间,分配给value的内容,后来value更新了,可能字符串长度变小了,就空闲出来了一部分空间。 |
value | ? | 键值对value的内容。 |
2 zipmap实例化
c
1 |
|
3 编码entry需要多大内存
c
1 |
|
4 entry中len字段
4.1 len字段读取
c
1 |
|
4.2 len字段编码需要多大内存 && len字段写入
c
1 |
|
5 检索key
c
1 |
|
6 新增\更新节点
c
1 |
|
Redis-0x06-zipmap
https://bannirui.github.io/2023/04/01/Redis-0x06-zipmap/