注:此处使用的ubuntu版本为14.04.1-server并安装到VMware® Workstation 12 Pro下,redis为3.0.7

    对于redis的安装,如果是桌面版的ubuntu确实足够简单,但作为服务器使用,我们通常会选择server版本的ubuntu,而服务器版的ubuntu安装redis会稍微复杂一点,这里就将整个安装过程说明一下(含错误解决)。

    首先我们需要下载redis:

wget http://download.redis.io/release/redis-3.0.7.tar.gz

    下载好后将其解压缩:

tar -xzf redis-3.0.7.tar.gz

    解压完成后进入到redis目录:

cd redis-3.0.7

    然后我们使用make命令编译(会出错):

make

    对,这里会出错,server版ubuntu没有make工具,需要我们自己安装,然后我们理所当然的输入以下命令安装(如果跟笔者使用相同的vm和ubuntu依然会出错):

sudo apt-get install make

    进行几步后会提示:请挂载cdrom,因为此时的安装会自动到 /media/cdrom 下的系统安装文件(iso)查找需要的内容,对于VMware,接下来我们就需要连接驱动器:

  •     (VMware自带中文的)右键当前的虚拟机->可移动设备->CD/DVD->设置
  •     连接中选择使用的ISO文件,并浏览选择当前系统对应的ISO文件,确定。
  •     右键当前虚拟机->可移动设备->CD/DVD->连接

    连接好后桌面版的ubuntu会自动挂载光驱,但是服务器版的还需要我们自己手动挂载,因为make安装提示的是在 /media/cdrom ,所以我们直接使用以下命令挂载光驱到这个目录:

mount /dev/cdrom /media/cdrom 

    接下来我们就可以继续安装make了。

    make工具安装完成后,即可使用make命令编译redis源文件。

    然而,服务器版本的ubuntu连gcc都没装的,所以,还请输入以下命令安装gcc:

sudo apt-get install gcc

    安装好后我们再次make。sorry!这里可能还会报错(如果使用的redis版本跟笔者相同的话):“error: jemalloc/jemalloc.h: No such file or directory”。

    错误描述:

zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory
zmalloc.h:55:2: error: #error "Newer version of jemalloc required"
make[1]: *** [adlist.o] Error 1
make[1]: Leaving directory `/data0/src/redis-2.6.2/src'
make: *** [all] Error 2

    细心的同学可能注意到README文件中有提到如下内容:

Allocator  
---------  
Selecting a non-default memory allocator when building Redis is done by setting  
the `MALLOC` environment variable. Redis is compiled and linked against libc  
malloc by default, with the exception of jemalloc being the default on Linux  
systems. This default was picked because jemalloc has proven to have fewer  
fragmentation problems than libc malloc.  
To force compiling against libc malloc, use:  
    % make MALLOC=libc  
To compile against jemalloc on Mac OS X systems, use:  
    % make MALLOC=jemalloc

    说关于分配器allocator, 如果有 MALLOC 这个环境变量, 会有用这个环境变量的去建立Redis。 而且libc并不是默认的分配器, 默认的是 jemalloc, 因为 jemalloc 被证明有更少的 fragmentation problems 比libc。 但是如果你又没有 jemalloc 而只有 libc 当然 make 出错。 所以加这么一个参数。

    输入以下命令即可解决:

make MALLOC=libc

    OK,终于可以愉快的make了。

    make完后cd到src目录ls后就能看到编译好的文件,然后可以启动redis开始玩了!

    更多内容请移步:

    Redis安装及Java客户端的使用浅析