1、下载

     wget  "http://codeload.github.com/antirez/redis/tar.gz/2.8.21" -O redis-2.8.21.tar.gz

2、解压

     [root@localhost redis-2.8.21]# tar -zxvf redis-2.8.21.tar.gz

3、编译

     [root@localhost redis-2.8.21]# cd redis-2.8.21

     [root@localhost redis-2.8.21]# make

     当看见最后有 Hint: It's a good idea to run 'make test' ;) 说明编译通过

4、安装

     make PREFIX=/usr/local/redis install  

     PREFIX=/usr/local/redis是指定安装路径

[root@localhost redis-2.8.21]# make PREFIX=/usr/local/redis install 
cd src && make install
make[1]: Entering directory `/usr/local/src/redis-2.8.21/src'

Hint: It's a good idea to run 'make test' ;)

    INSTALL install
    INSTALL install
    INSTALL install
    INSTALL install
    INSTALL install
make[1]: Leaving directory `/usr/local/src/redis-2.8.21/src'

此时安装完成,cd  /usr/local/redis 会看到一个bin目录,该目录下
分别是redis-server、redis-cli、redis-benchmark、redis-stat,它们的作用如下:

redis-server:Redis服务器的daemon启动程序
redis-cli:Redis命令行操作工具。当然,你也可以用telnet根据其纯文本协议来操作
redis-benchmark:Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能
redis-stat:Redis状态检测工具,可以检测Redis当前状态参数及延迟状况 

5、建立配置文件目录,自己定义redis的配置文件

    [root@localhost redis-2.8.21]# mkdir /usr/local/redis/etc

    wget http://www.apelearn.com/study_v2/.redis_conf -O /usr/local/redis/etc/redis.conf 2>/dev/null

    上面下载的是写好的配置文件

    vim  /usr/local/redis/etc/redis.conf  //写入如下内容

     daemonize yes
     pidfile /usr/local/redis/var/redis.pid
     port 6379
     timeout 300
     loglevel debug
     logfile /usr/local/redis/var/redis.log
     databases 16
     save 900 1
     save 300 10
     save 60 10000
     rdbcompression yes
     dbfilename dump.rdb
     dir /usr/local/redis/var/
     appendonly no
     appendfsync always


下面是redis.conf的主 要配置参数的意义:
daemonize:是否以后台daemon方式运行
pidfile:pid文件位置
port:监听的端口号
timeout:请求超时时间
loglevel:log信息级别
logfile:log文件位置
databases:开启数据库的数量
save * *:保存快照的频率,第一个*表示多长时间,第三个*表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。
rdbcompression:是否使用压缩
dbfilename:数据快照文件名(只是文件名,不包括目录)
dir:数据快照的保存目录(这个是目录)
appendonly:是否开启appendonlylog,开启的话每次写操作会记一条log,这会提高数据抗风险能力,但影响效率。
appendfsync:appendonlylog如何同步到磁盘(三个选项,分别是每次写都强制调用fsync、每秒启用一次fsync、不调用fsync等待系统自己同步)


6、启动脚本

[root@localhost redis-2.8.21]# wget http://www.apelearn.com/study_v2/.redis_init -O /etc/init.d/redis 2>/dev/null

[root@localhost redis-2.8.21]# ls /etc/init.d/redis 
/etc/init.d/redis

7、设置用户,设置权限,启动(因为脚本启动时以redis用户启动的,所以需要增加redis用户

[root@localhost redis-2.8.21]# useradd -s /sbin/nologin redis
[root@localhost redis-2.8.21]# mkdir /usr/local/redis/var
[root@localhost redis-2.8.21]# chmod 777 /usr/local/redis/var/
[root@localhost redis-2.8.21]# chmod 755 /etc/init.d/redis 
[root@localhost redis-2.8.21]# chkconfig --add redis
[root@localhost redis-2.8.21]# chkconfig redis on
[root@localhost redis-2.8.21]# service redis start
Starting redis-server:                                     [  OK  ]
[root@localhost redis-2.8.21]# ps aux|grep redis
redis     5944  0.1  0.0  33876  1568 ?        Ssl  20:29   0:00 /usr/local/redis/bin/redis-server *:6379       #已经启动监听的是6379端口              
root      5953  0.0  0.0   4420   760 pts/0    S+   20:30   0:00 grep redis

8、简单测试

[root@localhost redis-2.8.21]# /usr/local/redis/bin/redis-cli
127.0.0.1:6379>  set k1 v1
OK
127.0.0.1:6379> get k1
"v1"
127.0.0.1:6379> 

说明redis安装,测试OK。

注:redis的启动脚本

[root@localhost redis-2.8.21]# cat /etc/init.d/redis 
#!/bin/sh
#
# redis        init file for starting up the redis daemon
#
# chkconfig:   - 20 80
# description: Starts and stops the redis daemon.

# Source function library.
. /etc/rc.d/init.d/functions

name="redis-server"
basedir="/usr/local/redis"
exec="$basedir/bin/$name"
pidfile="$basedir/var/redis.pid"
REDIS_CONFIG="$basedir/etc/redis.conf"

[ -e /etc/sysconfig/redis ] && . /etc/sysconfig/redis

lockfile=/var/lock/subsys/redis

start() {
    [ -f $REDIS_CONFIG ] || exit 6
    [ -x $exec ] || exit 5
    echo -n $"Starting $name: "
    daemon --user ${REDIS_USER-redis} "$exec $REDIS_CONFIG"
    retval=$?
    echo
    [ $retval -eq 0 ] && touch $lockfile
    return $retval
}

stop() {
    echo -n $"Stopping $name: "
    killproc -p $pidfile $name
    retval=$?
    echo
    [ $retval -eq 0 ] && rm -f $lockfile
    return $retval
}

restart() {
    stop
    start
}

reload() {
    false
}

rh_status() {
    status -p $pidfile $name
}

rh_status_q() {
    rh_status >/dev/null 2>&1
}


case "$1" in
    start)
        rh_status_q && exit 0
        $1
        ;;
    stop)
        rh_status_q || exit 0
        $1
        ;;
    restart)
        $1
        ;;
    reload)
        rh_status_q || exit 7
        $1
        ;;
    force-reload)
        force_reload
        ;;
    status)
        rh_status
        ;;
    condrestart|try-restart)
        rh_status_q || exit 0
        restart
        ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart}"
        exit 2
esac
exit $?