redis
文章平均质量分 50
youkuxiaobin
快乐起来
展开
-
redis 整数集合、压缩列表和对象
整数集合整数集合(intset)是redis用于保存整数值的集合抽象数据结构,它可以保存类型为int16_t、int32_t、int64_t的整数值,并且保证集合中不会出现重复元素。数据结构:typedef struct intset { uint32_t encoding;//INTSET_ENC_INT16、INTSET_ENC_INT32、INTSET_ENC_INT6...原创 2020-02-06 17:39:11 · 231 阅读 · 0 评论 -
redis 链表
typedef struct listNode { struct listNode *prev; //先前节点 struct listNode *next; //后续节点 void *value; //存储value} listNode;typedef struct list { listNode *head; //head...原创 2020-01-05 21:40:01 · 111 阅读 · 0 评论 -
redis 字符串
字符串typedef char *sds;struct sdshdr { unsigned int len; //记录已经使用字节数 unsigned int free; //记录未使用字节数 char buf[]; //字节数组};sds组织如下:下面基于sdshdr 结构,分析下一些sds api 调用://新分配一个sds结构,同时buf指向的地...原创 2020-01-05 21:38:32 · 97 阅读 · 0 评论 -
redis 时间事件
时间事件保存在aeEventLoop->timeEventHead 以链表的方式进行存储/* Time event structure */typedef struct aeTimeEvent { long long id; /* time event identifier. */ long when_sec; /* seconds */ ...原创 2019-12-22 18:36:09 · 212 阅读 · 0 评论 -
redis aeMain 网络 reactor
事件循环1 首先listen port 注册到epoll 中,并且设置回调acceptTcpHandleraeCreateFileEvent(server.el, server.ipfd[j], AE_READABLE, acceptTcpHandler,NULL)2 当一个新的客户端connect 的时候listen port 变成可读acceptTcpHandle...原创 2019-12-17 08:24:10 · 242 阅读 · 0 评论 -
redis initServer
initServer 主要是对程序进行初始化,包括client list 创建、共享常量字符串、调整文件句柄大小、网络Reactor初始化、监听套接字建立、数据库db初始、时间事件初始化等等创建共享对象:createSharedObjects() {//redis都是shared.crlf = createObject(REDIS_STRING,sdsnew("\r\n"));...原创 2019-12-15 10:34:56 · 226 阅读 · 0 评论 -
redis loadServerConfig
函数原型 void loadServerConfig(char *filename, char *options)redis可以通过指定配置文件和命令行方式修改redis 配置,其中filename就是配置文件,option 保存使用者从命令行启动的参数1读取filename以每行一个命令方式保存在config2 命令行参数以每行一个命令方式保存在config最终都转换成每行一个参...原创 2019-12-15 10:05:03 · 319 阅读 · 0 评论 -
redis initServerConfig
首先初始化默认配置 变量 默认值 server.runid d3d11e6a9a2ee8876697355a44117dfcfe87fce3 server.configfile NULL server.hz 10 serv...原创 2019-12-13 12:09:46 · 152 阅读 · 0 评论 -
redis 主体框架
参考了《redis设计与实现第二版》,然后花了一周业余时间 把代码撸了一遍,留下自己的笔记整体框架initServerConfig 主要是设置redis服务默认配置loadServerConfig 对命令行传入的参数和配置文件参数进行赋值和初始化,没有配置的参数就采用initServerConfig默认配置initServer 主要是服务完成初始化,包括client list ...原创 2019-12-13 07:16:53 · 113 阅读 · 0 评论