
Redis
junlon2006
Coding for fun.
展开
-
redis cluster
Redis cluster概念1、Redis Cluster特点是:分布式、去中心化、高可用。2、hash slots(哈希槽):Redis集群,共维护了16384(0x4000)个hash slot,通过对key的CRC 16检验值对%16384获取key对应的hash slot。3、集群中的每个Redis node负责处理16384个hash slot中的一部分。4、集群中的每个节点都...原创 2019-11-07 13:53:29 · 159 阅读 · 0 评论 -
Redis5.0.5源码解析 -- sds
redis源码地址:https://github.com/antirez/redis/releases/tag/5.0.5sds源码所在位置:src/sds.h src/sds.c简介:sds (Simple Dynamic String),即动态字符串管理库在sds.h中,有如下定义typedef char *sds;/* Note: sdshdr5 is never used, w...原创 2019-09-25 19:34:47 · 867 阅读 · 0 评论 -
Redis5.0.5源码解析 -- 多路复用模型
redis源码地址简介:I/O多路复用模型,在5.0.5的源码中,支持了4种,分别是:epoll、evport、kqueue、select。源码地址epoll:src/ae_epoll.cevport:src/ae_evport.ckqueue:src/ae_kqueue.cselect:ae_select.cRedis对以上各类I/O接口都进行了封装,以满足src/ae.c的统一...原创 2019-09-26 14:02:00 · 304 阅读 · 0 评论 -
Redis5.0.5源码解析 -- tcp_max_syn_backlog
1、client发送SYN到server,将状态修改为SYN_SEND,如果server收到请求,则将状态修改为SYN_RCVD,并把该请求放到syns queue队列中。2、server回复SYN+ACK给client,如果client收到请求,则将状态修改为ESTABLISHED,并发送ACK给server。3、server收到ACK,将状态修改为ESTABLISHED,并把该请求从sy...原创 2019-09-26 19:37:06 · 465 阅读 · 0 评论 -
Redis5.0.5源码解析 -- daemon
Redis daemon:即在后天运行,源码如下int background = server.daemonize && !server.supervised;if (background) daemonize(); /* 如果配置后台运行,则启用fork,默认前天跑 */ void daemonize(void) { int fd; if (for...原创 2019-09-29 14:16:42 · 308 阅读 · 0 评论