• 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:
    集群:






     

  • 相关阅读:
    JavaScript脚本学习
    PE文件结构 (转贴)
    Squid 代理服务器 编译源码 伪造HTTP_X_FORWARDED_FOR 请求头
    设置win2003远程桌面允许2个以上会话
    2003远程桌面声音问题
    AS3正则表达式
    Visual Studio技巧之打造拥有自己标识的代码模板
    如何重建sql数据库索引
    多线程系列(转)
    时间差
  • 原文地址:https://www.cnblogs.com/xzpp/p/4752923.html
Copyright © 2020-2023  润新知