随笔分类 - redis
摘要:目录redis集群资源配置建议Production environmentbasic replication配置replication的特性replication中的网络连接replication过程部分同步和完整同步的过程数据同步分类slave的数据同步和偏移量管理replication ID重启
阅读全文
摘要:ziplist ziplist结构 ziplist的布局如下,所有的字符默认使用小端序保存: uint32_t :为一个无符号整数。保存了ziplist占用的字节数,包含zlbytes字段本身占用的4个字节。主要用于调整数据结构的大小。 uint32_t :最后一个entry的字节偏移量(非zlen
阅读全文
摘要:redis对象作为redis存储的基本单元,对应redisDb "dict" 中的dictEntry key和dictEntry val。 更全面的 "图谱" 源码解析参见: "object.c"
阅读全文
摘要:edis源码的dict.c主要实现了基于hash表的操作,如增删改查,对哈希表大小的扩容和缩容,以及对哈希表的rehash和增量rehash等。在源码的dictScan函数中,非常巧妙精美地实现了对哈希表的迭代查找,非常建议去看一下。 源码解析地址: "dict.c" "dict.h"
阅读全文
摘要:redis使用sds(simple dynamic string)实现了字符串的存储。sds实际上就是TLV格式的数据结构。其数据结构主要分为如下5种,主要分为首部和数据部分,首部给出了type和len信息,数据部分用于存储字符串数据。不同的首部可以表示不同长度的字符串数据,如SDS_TYPE_8最
阅读全文
摘要:redis的事件分为:文件事件和时间事件。文件事件是基于I/O的事务处理,时间事件则是基于时间点的事务处理。redis事件支持的多路复用包含四个实现:ae_epoll.c,ae_evport.c,ae_kqueue.c,ae_select.c 基本处理流程如下,源代码解析参见: ae.c和ae.h以
阅读全文