Redis数据存储模型|Redis底层数据存储结构

Redis 数据存储模型

redisObject

typedef struct redisObject {
    unsigned type:4;
    unsigned encoding:4;
    unsigned lru:LRU_BITS; /* LRU time (relative to global lru_clock) or
                            * LFU data (least significant 8 bits frequency
                            * and most significant 16 bits access time). */
    int refcount;
    void *ptr;
} robj;

定义了 Redis 中的数据对象结构 redisObject,它是 Redis 存储数据的基本单元。

  • unsigned type:4;unsigned encoding:4;:这两个字段用于表示对象的类型和编码方式。它们各自使用 4 位来存储,因此每个字段的值可以是 0 到 15(4 位的二进制数可以表示 0 到 15 的十进制数)。type 表示对象的数据类型(例如字符串、哈希、列表等),encoding 表示对象的内部编码方式(例如字符串的编码方式可以是 int、embstr 等)。

  • unsigned lru:LRU_BITS;:这个字段用于实现 LRU(Least Recently Used)算法,用于对象的淘汰策略。LRU_

猜你喜欢

转载自blog.csdn.net/huanglu0314/article/details/132250698