Ubuntu安装Redis(源码安装)

每个版本Redis安装方式大同小异,这里以Redis4.0.9为例

一,下载redis4.0.9

新建文件夹用于存放redis

>cd /usr/local

>mkdir redis

>cd redis

> wget http://download.redis.io/releases/redis-4.0.9.tar.gz

二,解压并且安装

>tar -zxvf redis-4.0.9.tar.gz (解压)

>cd redis-4.0.9 (进入源码包根目录)

>sudo make (构建)

>sudo make test  (构建完成测试,看是否成功,该步骤可能会报错,如下面的问题)

>sudo make install (测试成功安装,安装完后在/usr/local/bin下面)

安装完成后生成的工具

redis-server redis服务器
redis-cli redis命令行客户端
redis-benchmark redis性能测试工具
redis-check-aof AOF文件修复工具
redis-check-rdb RDB文件检索工具

把源码包中的redis.conf文件复制一份到/etc/redis目录下

修改配置文件,如需外网连接把 bind 127.0.0.1注释掉,并且修改requirepass注释打开,设置链接密码xxxxx

三,启动Redis服务

指定配置文件启动

redis-server /etc/redis/redis.conf

开启redis: service redis start        

停止redis: service redis stop         

重启redis: service redis restart        

查看服务状态:service redis status最后将机器关机,重新启动 

四,设置redis开机启动

修改redis.conf(/etc/redis下)

#打开后台运行选项         daemonize yes     

#设置日志文件路径         logfile “/var/log/redis/redis.log”

编写脚本

vim /etc/init.d/redis

#!/bin/sh 
# chkconfig: 2345 10 90 
# description: Start and Stop redis 

PATH=/usr/local/bin 
REDISPORT=6378
EXEC=/usr/local/bin/redis-server 
REDIS_CLI=/usr/local/bin/redis-cli 
PIDFILE=/var/run/redis_6378.pid  
CONF="/etc/redis/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 exists, process is not running." 
        else 
            PID=$(cat $PIDFILE) 
            echo "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|fore-reload}" 
        exit 1 
esac

按qw! 保存退出

添加脚本的执行权限 sudo chmod +x /etc/init.d/redis

设置开机自动启动 sudo update-rc.d redis defaults

五,遇到的问题

1.设置开机自启动可能会报错,如下

insserv: warning: script ‘K01nginx’ missing LSB tags and overrides

insserv: warning: script ‘redis’ missing LSB tags and overrides

insserv: warning: script ‘nginx’ missing LSB tags and overrides

解决方案

在文件头部#!/bin/sh下面添加

#### BEGIN INIT INFO
# Provides: OSSEC HIDS
# Required-Start: $network $remote_fs $syslog $time
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: OSSEC HIDS
### END INIT INFO

在头部添加后还报错,如

insserv: Script redis is broken: missing end of LSB comment.

insserv: exiting now!

update-rc.d: error: insserv rejected the script header

请检查添加空格是否正常

2.问题You need tcl 8.5 or newer in order to run the Redis test

root@chalktest:/usr/local/redis/redis-4.0.9# sudo make test
cd src && make test
make[1]: Entering directory '/usr/local/redis/redis-4.0.9/src'
You need tcl 8.5 or newer in order to run the Redis test
Makefile:242: recipe for target 'test' failed
make[1]: *** [test] Error 1
make[1]: Leaving directory '/usr/local/redis/redis-4.0.9/src'
Makefile:6: recipe for target 'test' failed
make: *** [test] Error 2

安装tcl可解决

wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz
cd /usr/local/tcl8.6.1/unix/ 
sudo ./configure 
sudo make 
sudo make install

安装完tcl后重新make redis即可