linux安装redis并配置开机自启

准备工作


系统:centos 6.8
安装包:redis-4.0.6.tar.gz
链接:https://pan.baidu.com/s/1VaF_gBixNvyohNBoh06A_A 密码:wixz

开始安装

1、 下载完安装文件后复制到/usr/local/,解压:

[root@vm01 local]# cd /usr/local
[root@vm01 local]# tar -zxvf redis-4.0.6.tar.gz

2、重命名(个人习惯)

[root@vm01 local]# mv redis-4.0.6 redis

3、进入解压后的目录,编译安装:

[root@vm01 local]# cd redis
[root@vm01 redis]# make
[root@vm01 redis]# make install

4、完成上述操作后可发现在/usr/local/bin/下面新增了以下几个文件:

[root@vm01 redis]# cd /usr/local/bin
[root@vm01 bin]# ls -l

这里写图片描述
至此基本安装已经完成,可以执行一下命令尝试启动

[root@vm01 bin]# redis-server

出现以下界面说明启动成功
这里写图片描述

配置

上面启动时使用的redis的默认配置,我们需要根据实际情况对配置文件做一些修改。
redis默认配置文件在解压后的目录下,本示例中为/usr/local/redis/redis.conf,我们需要对该配置文件做修改。

[root@vm01 /]# cd /usr/local/redis
[root@vm01 redis]# vim redis.conf

需要修改的有以下几处:

bind 127.0.0.1

该配置项绑定了客户端ip,只有指定ip的主机才能链接redis,默认只能通过本机连接,如果需要通过其他主机连接,可修改为指定主机的ip,多个ip之间以空格分隔。如果要设置所有ip可连接,注释掉该行即可 #bind 127.0.0.1

port 6379

redis监听端口,可修改为其他端口号,注意如果修改了该项后续涉及到端口的地方都需要做相应修改,安全性要求不高的情况下可不做修改,先使用默认端口。

pidfile /var/run/redis_6379.pid

pidfile 表示启动后进程文件的路径和名称,可根据需求进行修改,该配置关系后面配置开机自启部分,如果修改了该项,在后续配置中需要与此保持一致。

daemonize no
修改为
daemonize yes

该配置表示redis启动后是否后台运行,改为yes表示后台运行。

dir ./
改为
dir /usr/local/redis/data/

该配置表示redis持久化数据文件存放位置,建议修改默认配置,上述修改表示将文件存放在/usr/local/redis/data/目录下,注意:如果该路径不存在启动时会报错,需要手工创建目录。

#requirepass forbiden
改为
requirepass 123456

requirepass表示redis的连接密码,默认是没有设置密码的,建议加上密码,示例中密码为123456,可根据需要设置成高强度密码。

至此配置文件修改完成,上述只是基本的修改,其他修改请查阅官方文档。
现在我们可以使用修改后的配置启动redis

[root@vm01 /]# redis-server /usr/local/redis/redis.conf

停止redis

[root@vm01 /]# redis-cli -a 123456 shutdown

配置开机自启

redis自带了启动脚本,可在utils目录下找到,本示例中路径为/usr/local/redis/utils/redis_init_script
将其复制到/etc/init.d/并重命名:

cp /usr/local/redis/utils/redis_init_script /ect/init.d/redis

编辑脚本文件

cd/ect/init.d/
vim redis

修改后内容如下:

#!/bin/sh
#chkconfig: 2345 10 90
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.

# 端口号,与redis.conf中的port保持一致
REDISPORT=6379
# 启动脚本位置,如果安装位置改变需要进行相应的修改
EXEC=/usr/local/bin/redis-server
# 客户端脚本位置,如果安装位置改变需要进行相应的修改
CLIEXEC=/usr/local/bin/redis-cli

#进程文件位置,与redis.conf中的pidfile保持一致
PIDFILE=/var/run/redis_6379.pid
#redis.conf文件位置
CONF="/usr/local/redis/redis.conf"
#密码,与redis.conf中的requirepass保持一致
PASS="123456"

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
        ;;
    stop)
        if [ ! -f $PIDFILE ]
        then
                echo "$PIDFILE does not exist, process is not running"
        else
                PID=$(cat $PIDFILE)
                echo "Stopping ..."
                # 如果设置了密码需要加上 -a "密码" 用于停止redis时的密码验证
                $CLIEXEC -p $REDISPORT -a $PASS shutdown
                while [ -x /proc/${PID} ]
                do
                    echo "Waiting for Redis to shutdown ..."
                    sleep 1
                done
                echo "Redis stopped"
        fi
        ;;
    *)
        echo "Please use start or stop as first argument"
        ;;
esac

上述修改中,注意第二行添加了以下内容:

#chkconfig: 2345 10 90

由于设置了密码,添加了PASS变量,下关闭命令中用到了该变量

# 原始内容为:$CLIEXEC -p $REDISPORT shutdown,在中间加入了-a $PASS
$CLIEXEC -p $REDISPORT -a $PASS shutdown

修改完配置后,给文件redis加上可执行权限

chmod +x redis

至此可以使用下述命令启动和停止reids

#启动
service redis start
#停止
service redis stop

注意:如果redis已经启动,先手动关掉redis,否则执行service redis stop的话可能会出现redis.pid not found的问题.

设置开机自启

chkconfig --add redis
chkconfig redis on

至此大功告成!

注意:上述所有操作都在root用户下操作,所以不存在权限问题,如果在非root用户下进行上述安装操作,请注意可能因为权限原因导致持久化文件或日志等文件无法写入而导致无法启动。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章