Redis-0x08-redisObject
数据类型和编码
1 数据结构
1.1 数据结构图
1.2 type字段
数据类型 | 宏定义 | 值 |
---|---|---|
字符串 | OBJ_STRING | 0 |
列表 | OBJ_LIST | 1 |
集合 | OBJ_SET | 2 |
有序集合 | OBJ_ZSET | 3 |
哈希表 | OBJ_HASH | 4 |
1.3 encoding字段
编码方式 | 宏定义 | 值 |
---|---|---|
OBJ_ENCODING_RAW | 0 | |
OBJ_ENCODING_INT | 1 | |
OBJ_ENCODING_HT | 2 | |
OBJ_ENCODING_ZIPMAP | 3 | |
OBJ_ENCODING_LINKEDLIST | 4 | |
OBJ_ENCODING_ZIPLIST | 5 | |
OBJ_ENCODING_INTSET | 6 | |
OBJ_ENCODING_SKIPLIST | 7 | |
OBJ_ENCODING_EMBSTR | 8 | |
OBJ_ENCODING_QUICKLIST | 9 | |
OBJ_ENCODING_STREAM | 10 |
1.4 lru字段
配合内存淘汰策略使用的
- LRU策略
- 记录访问数据的时间戳 单位秒 24位
- LFU策略
- 高16位 记录访问数据的时间戳 单位分钟
- 低8位 记录访问数据频率
1.5 refcount字段
数据的引用计数
1.6 ptr字段
数据
2 String字符串对象
c
1 |
|
2.1 INT编码
c
1 |
|
2.2 EMBSTR编码
c
1 |
|
2.3 RAW编码
c
1 |
|
c
1 |
|
3 List列表对象
3.1 quicklist编码
c
1 |
|
3.2 ziplist编码
c
1 |
|
4 Set集合对象
4.1 dict编码
c
1 |
|
4.2 intset编码
c
1 |
|
5 ZSet有序集合对象
5.1 zskiplist编码
c
1 |
|
5.2 ziplist编码
c
1 |
|
6 Hash哈希对象
6.1 ziplist编码
c
1 |
|
Redis-0x08-redisObject
https://bannirui.github.io/2023/04/03/Redis-0x08-redisObject/