
redis
文章平均质量分 50
youkuxiaobin
dog
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
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 · 322 阅读 · 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 · 168 阅读 · 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 · 154 阅读 · 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 · 262 阅读 · 0 评论 -
redis aeMain 网络 reactor
事件循环 1 首先listen port 注册到epoll 中,并且设置回调acceptTcpHandler aeCreateFileEvent(server.el, server.ipfd[j], AE_READABLE, acceptTcpHandler,NULL) 2 当一个新的客户端connect 的时候listen port 变成可读 acceptTcpHandle...原创 2019-12-17 08:24:10 · 299 阅读 · 0 评论 -
redis initServer
initServer 主要是对程序进行初始化,包括client list 创建、共享常量字符串、调整文件句柄大小、网络Reactor初始化、监听套接字建立、数据库db初始、时间事件初始化等等 创建共享对象: createSharedObjects() { //redis都是 shared.crlf = createObject(REDIS_STRING,sdsnew("\r\n")); ...原创 2019-12-15 10:34:56 · 328 阅读 · 0 评论 -
redis loadServerConfig
函数原型 void loadServerConfig(char *filename, char *options) redis可以通过指定配置文件和命令行方式修改redis 配置,其中filename就是配置文件,option 保存使用者从命令行启动的参数 1读取filename以每行一个命令方式保存在config 2 命令行参数以每行一个命令方式保存在config 最终都转换成每行一个参...原创 2019-12-15 10:05:03 · 382 阅读 · 0 评论 -
redis initServerConfig
首先初始化默认配置 变量 默认值 server.runid d3d11e6a9a2ee8876697355a44117dfcfe87fce3 server.configfile NULL server.hz 10 serv...原创 2019-12-13 12:09:46 · 221 阅读 · 0 评论 -
redis 主体框架
参考了《redis设计与实现第二版》,然后花了一周业余时间 把代码撸了一遍,留下自己的笔记 整体框架 initServerConfig 主要是设置redis服务默认配置 loadServerConfig 对命令行传入的参数和配置文件参数进行赋值和初始化,没有配置的参数就采用initServerConfig默认配置 initServer 主要是服务完成初始化,包括client list ...原创 2019-12-13 07:16:53 · 162 阅读 · 0 评论