摘要: 本文分析源码基于 Redis 2.4.7 stable 版本。 概述 Redis通 过定义一个 struct redisServer 类型的全局变量server 来保存服务器的相关信息(比如:配置信息,统计信息,服务器状态等等)。启动时通过读取配置文件里边的信息对server进行初始化(如果没有指定配置文 件,将使用默认值对sever进行初始化),初始化的内容有:起监听端口,绑定有新连接时的回调函数,绑定服务器的定时函数,虚拟内存初始化,log初始 化等等。 启动 初始化服务器配置 先来看看redis 的main函数的入口 Redis.c:1694 int main(int argc, ch. 阅读全文
posted @ 2012-06-29 14:13 ChaunceyHao 阅读(414) 评论(0) 推荐(0)
摘要: Dex是一个开源的MongoDB优化工具,它通过对查询日志和当前数据库索引进行分析,向管理员提出高效的索引优化策略。 快速入门 安装 pip install dex 开始监控 dex -f mongodb.log mongodb://localhost 在监控过程中,dex会通过stderr输出推荐的结果 { "index": "{'simpleIndexedField': 1, 'simpleUninde... 阅读全文
posted @ 2012-06-29 14:12 ChaunceyHao 阅读(281) 评论(0) 推荐(0)
摘要: 本文分析源码基于Redis 2.4.7 stable 版本。下面是其文章原文: rdb是 redis保存内存数据到磁盘数据的其中一种方式(另一种是AOF)。Rdb的主要原理就是在某个时间点把内存中的所有数据的快照保存一份到磁盘上。在条 件达到时通过fork一个子进程把内存中的数据写到一个临时文件中来实现保存数据快照。在所有数据写完后再把这个临时文件用原子函数rename(2)重 命名为目标rdb文件。这种实现方式充分利用fork的copy on write。 另外一种是通过save命令主动触发保存数据快照,这种是阻塞式的,即不会通过生成子进程来进行数据集快照的保存。 相关配置 save < 阅读全文
posted @ 2012-06-29 14:11 ChaunceyHao 阅读(493) 评论(0) 推荐(0)