Redis学习笔记(1)- CentOS 6.4 安装Redis



2013.10.13



 



 



学习环境



vm 10.1 + 默认、新装的干净 CentOS 6.4  64BIT系统



 



 



准备



1. redis 2.6.16版



    http://download.redis.io/releases/redis-2.6.16.tar.gz



 



 



安装计划及具体步骤笔记



 



一、计划



1. 下载redis稳定版本



2. 解压并安装redis,并放入合理的目录中



3. 手工启动redis,测试redis是否运行正常



4. 将redis加入开机自启动序列



 



二、 具体步骤笔记



 



1. 默认安装的CentOS系统自带wget小工具,所以我们利用它来在linux系统里下载redis



(1)获取响应权限:su root



(2)规划好下载的目录:mkdir /usr/local/soft/



(3)进入新建的目录,准备下载:cd /usr/local/soft/



(4)下载redis最新稳定版:wget http://download.redis.io/releases/redis-2.6.16.tar.gz



 



2.   解压并安装redis,并放入合理的目录中



(1)解压tar包:tar zxvf redis-2.6.16.tar.gz



(2)进入解压后出现的新目录: cd redis-2.6.16



(3)编译源码:make



(4)校验编译是否正确:make test



        此时会有错误提示:You need tcl 8.5 or newer in order to run the Redis test



(5)根据以上错误提示,安装ActiveTcl 8.5 以上版本(我选的是最新的8.6版本,约20多MB,URL:http://downloads.activestate.com/ActiveTcl/releases/ )



 



3. 手工启动redis,测试redis是否运行正常



(1)在当前redis目录中输入命令启动Redis: src/redis-server



(2)检查进程是否有Redis了: ps aux | grep redis,可以看见进程列表中有一个叫“src/redis-server”的进程了



(3)启动redis自带的客户端,进行测试:



        # src/redis-cli -- 启动客户端并连接本地Redis



        # set foo bar -- 提示 “ok”说明设置键值正常。



        # get foo -- 能够提示返回正确的“bar”,说明运行正常。



        # quit -- 退出客户端



 



4.  将Redis加入开机自启动序列



(1)redis.conf 配置文件里面的daemonize no 改成 daemonize yes (后加上的步骤,否则会导致系统启动时进入不了x windows界面)



(2)测试通过的自启动脚本:



###########################



    PATH=/usr/local/soft/redis-2.6.16:/usr/local/bin:/sbin:/usr/bin:/bin



 



    REDISPORT=6379



    EXEC=/usr/local/soft/redis-2.6.16/src/redis-server



    REDIS_CLI=/usr/local/soft/redis-2.6.16/src/redis-cli



 



    PIDFILE=/var/run/redis.pid



    CONF="/usr/local/soft/redis-2.6.16/redis.conf"



 



    case "$1" in



        start)



            if [ -f $PIDFILE ]



            then



                    echo "$PIDFILE exists, process is already running or crashed"



            else



                    echo "Starting Redis server..."



                    $EXEC $CONF



            fi



            if [ "$?"="0" ]



 



            then



 



                  echo "Redis is running..."



            fi



 



            ;;



        stop)



            if [ ! -f $PIDFILE ]



            then



                    echo "$PIDFILE does not exist, process is not running"



            else



                    PID=$(cat $PIDFILE)



                    echo "Redis is stopping ..."



                    $REDIS_CLI -p $REDISPORT SHUTDOWN



                    while [ -x ${PIDFILE} ]



                   do



                        echo "Waiting for Redis to shutdown ..."



                        sleep 1



                    done



                    echo "Redis stopped"



            fi



            ;;



       restart|force-reload)



            ${0} stop



            ${0} start



            ;;



      *)



        echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2



            exit 1



    esac



##############################



        把以上脚本保存成/etc/rc.d/init.d/redis文件



 



(3)编辑/etc/rc.local文件,在最后一行加上bash /etc/init.d/redis start 即可



 



 



三、扩展知识



1. VM公司从2010年开始赞助Redis项目



2. CentOS 按照默认环境安装时,未安装   ActiveTcl   8.5以上版本,所以在验证Redis是否编译正确时需要自行安装。



3. yum list xxxx   可以检测并列出资源库中是否有提供可安装的xxxx的安装包及版本号



 



 



四、待解决的问题



1. 在将Redis配置成自启动脚本后,突然发现CentOS进入不了图形界面了,最后加载的进度条就停留在最右边。



此时用SSH客户端连接CentOS却一切正常,非常奇怪,目前未找到原因和解决办法。



 



 解决办法:当天晚上经仔细回忆操作过程,终于发现该问题出现于何处:redis.conf 配置文件里面的daemonize no 没有改成 daemonize yes。修改成 yes后,问题解决。