Redis内存容量的预估和优化

Redis是个内存全集的kv数据库,不存在部分数据在磁盘部分数据在内存里的情况,所以提前预估和节约内存非常重要.本文将以最常用的string和zipmap两类数据结构在jemalloc内存分配器下的内存容量预估和节约内存的方法.

Redis2.4 backgroud thread

Redis终于在2.4版本里引入了除主线程之外的后台线程,这个设计保持了Redis原有的keep it simple的风格,实现的特别简单且有效果,实现的主要原理就是把fsync和close操作都移动到background来执行。

Redis2.4版的自动bgrewriteaof

2.4版本做了很多功能改进,尤其是aof这块变动较大。增加了自动的bgrewriteaof,开启两个后台线程来避免主线程fsync、rename、close等阻塞操作,另外修复了出现重复命令进入aof文件的bug,下面是基于2.4.1的源码aof这块的改进分析。