zoukankan      html  css  js  c++  java
  • redis源码分析

    我阅读的源码版本是redis-2.8.19

    src目录下总共96个.h,.c文件

    1. 数据结构相关源码(15个左右)
    字符串代码: sds.h, sds.c
    字典:dict.h, dict.c
    链表: adlist.h, adlist.c
    跳跃表: redis.h/zskiplistNode, redis.h/zskiplis
    整数集合: intset.h, intset.c
    压缩列表:ziplist.h, ziplist.c
    redisObject: redis.h/redisObject, object.c

    2. 单机数据库
    数据库对象: redis.h/redisServer, redis.h/redisDb, redis.h/redisClient
    rdb持久化: rdb.c/rdbSave, rdb.c/rdbLoad
    rdb文件格式: od -c dump.rdb
    aof持久化: redis.h/redisServer.aof_buf
    文件事件: Reactor模型, 包含(socket, epoll, 文件事件分派器,文件事件处理器)
    文件事件源码: ae.h,ae_epoll.c, ae_kqueue.c, ae_select.c
    ae.c/aeCreateFileEvent
    ae.c/aeDeleteFileEvent
    ae.c/aeGetFileEvent
    ae.c/aeWait
    ae.c/aeApiPoll
    ae.c/aeProcessEvents
    ae.c/aeGetApiName
    文件事件处理器: networking.c/acceptTcpHander, networking.c/readQueryFromClent, networking.c/sendReplyToClient

    时间事件
    ae.c/aeCreateTimeEvent
    ae.c/aeDeleteTimeEvent
    ae.c/aeSearchNearestTimer
    ae.c/aeProcessTimeEvent


    客户端:redis.h/redisClient
    服务器: serverCron


    3. 多机数据库
    复制: 旧版的实现,先sync,在命令传播
    复制: 新版的实现,先sync,在命令传播,如果断线,执行psync
    Sentinel:
    集群:






     

  • 相关阅读:
    398. Random Pick Index
    382. Linked List Random Node
    645. Set Mismatch
    174. Dungeon Game
    264. Ugly Number II
    115. Distinct Subsequences
    372. Super Pow
    LeetCode 242 有效的字母异位词
    LeetCode 78 子集
    LeetCode 404 左叶子之和
  • 原文地址:https://www.cnblogs.com/xzpp/p/4752923.html
Copyright © 2011-2022 走看看