使用Redis+TCMalloc组合来提升服务器性能

其实,Redis可以采用不同内存分配器。

Redis的 zmalloc.c 源码中,我们可以看到如下代码:

48 /* Explicitly override malloc/free etc when using tcmalloc. */   49 #if defined(USE_TCMALLOC)   50 #define malloc(size) tc_malloc(size)   51 #define calloc(count,size) tc_calloc(count,size)   52 #define realloc(ptr,size) tc_realloc(ptr,size)   53 #define free(ptr) tc_free(ptr)   54 #elif defined(USE_JEMALLOC)   55 #define malloc(size) je_malloc(size)   56 #define calloc(count,size) je_calloc(count,size)   57 #define realloc(ptr,size) je_realloc(ptr,size)   58 #define free(ptr) je_free(ptr)   59 #endif  

tcmalloc | jemalloc | libc

关于Redis采用不同内存分配器碎片率对比,参看:

网上的相关参考:

由于网上的很多资料所使用的版本都比较老,这里打算使用各个组件的最新版本重新安装一次。

Step 1. 64位操作系统请先安装libunwind库(32位操作系统不要安装)

安装过程如下:

$ wget

$ tar zxvf libunwind-1.0.1.tar.gz

$ cd libunwind-1.0.1/

$ CFLAGS=-fPIC ./configure

$ make CFLAGS=-fPIC

$ make CFLAGS=-fPIC install


Step 2、安装google-perftools:

?redir=1

安装过程如下:

$ wget

$ chmod 777 gperftools-2.0-1.i386.rpm

$ rpm -ivh gperftools-2.0-1.i386.rpm

Step 3. 安装Redis


$ wget
$ tar xzf redis-2.4.13.tar.gz
$ cd redis-2.4.13
$ make

启动redis:

$ src/redis-server

启动控制台:

$ src/redis-cli
redis> set foo bar
OK
redis> get foo
"bar"

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/6f297fa9a7abe3068e0751e9323ca1ad.html