redis的main函数

1.  比较重要的结构体

struct redis server
{

        // 地址
        char *bindaddr[REDIS_BINDADDR_MAX]; /* Addresses we should bind to */
        // 地址数量
        int bindaddr_count;         /* Number of addresses in server.bindaddr[] */

        el;                       // 事件状态
      // 描述符
     int ipfd[REDIS_BINDADDR_MAX]; /* TCP socket file descriptors */   存放监听的所有套接字  listenToPort 中赋值
     // 描述符数量 int ipfd_count; /* Used slots in ipfd[] */
}





struct sharedObjectsStruct: 共享对象

struct sharedObjectsStruct {    robj *crlf, *ok, *err, *emptybulk, *czero, *cone, *cnegone, *pong, *space,    *colon, *nullbulk, *nullmultibulk, *queued,    *emptymultibulk, *wrongtypeerr, *nokeyerr, *syntaxerr, *sameobjecterr,    *outofrangeerr, *noscripterr, *loadingerr, *slowscripterr, *bgsaveerr,    *masterdownerr, *roslaveerr, *execaborterr, *noautherr, *noreplicaserr,    *busykeyerr, *oomerr, *plus, *messagebulk, *pmessagebulk, *subscribebulk,    *unsubscribebulk, *psubscribebulk, *punsubscribebulk, *del, *rpop, *lpop,    *lpush, *emptyscan, *minstring, *maxstring,    *select[REDIS_SHARED_SELECT_CMDS],    *integers[REDIS_SHARED_INTEGERS],    *mbulkhdr[REDIS_SHARED_BULKHDR_LEN], /* "*<value>\r\n" */    *bulkhdr[REDIS_SHARED_BULKHDR_LEN];  /* "$<value>\r\n" */};

2.  每个redisDb 定义为:

typedef struct redisDb {

    // 数据库键空间,保存着数据库中的所有键值对
    dict *dict;                 /* The keyspace for this DB */

    // 键的过期时间,字典的键为键,字典的值为过期事件 UNIX 时间戳
    dict *expires;              /* Timeout of keys with a timeout set */

    // 正处于阻塞状态的键
    dict *blocking_keys;        /* Keys with clients waiting for data (BLPOP) */

    // 可以解除阻塞的键
    dict *ready_keys;           /* Blocked keys that received a PUSH */

    // 正在被 WATCH 命令监视的键
    dict *watched_keys;         /* WATCHED keys for MULTI/EXEC CAS */

    struct evictionPoolEntry *eviction_pool;    /* Eviction pool of keys */

    // 数据库号码
    int id;                     /* Database ID */

    // 数据库的键的平均 TTL ,统计信息
    long long avg_ttl;          /* Average TTL, just for stats */

} redisDb;





流程:

1. 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值