robject
之前对redis基本的数据结构分别进行了简单的介绍,包括字符串、链表、哈希表、整数集合、压缩列表、压缩字典等,但是redis并不是直接使用这些数据结构来实现key-value对数据库的,而是基于这些数据结构为每一个对象创建一个对象robject。robject对象再根据数据类型,来选择合适的底层数据结构来存储数据。
robject的定义如下:
typedef struct redisObject {
unsigned type:4;
unsigned encoding:4;
unsigned lru:REDIS_LRU_BITS; /* lru time */
int refcount;
void *ptr;
} robj;
- type:4bit,对象的类型
- encoding:4bit,对象的编码方