Linux下Redis开机自启(Centos)

文章目录

  • CentOS6.9+redis 安装/ 配置 / 开机启动
    • #1 环境
    • #2 开始
    • 配置开机自动开启redis
    • #3 测试
      • #3.1 为什么不能正常关闭redis(可能会存在不能正常关闭的情况)

CentOS6.9+redis 安装/ 配置 / 开机启动

#1 环境

centos6.9 (腾讯云服务器)

#2 开始

安装

cd /opt # 把redis放在 /opt目录下
wget http://download.redis.io/releases/redis-4.0.2.tar.gz
tar xzf redis-4.0.2.tar.gz
cd redis-4.0.2
make
make test

启动

cd /opt/redis-4.0.2/src/
./redis-server # 启动

验证(新开窗口)

cd /opt/redis-4.0.2/src/
./redis-cli # 启动客户端
SET key value # 插入数据
get key # 查询数据

完美

配置开机自动开启redis

重启centos

reboot

查看redis是否开启(并没有开启,拒绝连接)

修改redis.conf,打开后台运行选项

cd /opt/redis-4.0.2
vim redis.conf
daemonize yes # no改成yes

编写开机自启动脚本

vim /etc/init.d/redis 

脚本需要修改4处地方(根据自己redis安装目录,暂时先修改3处,第四处后面讲解)

# chkconfig: 2345 20 80
# description: Start and Stop redis

PATH=/usr/local/bin:/sbin:/usr/bin:/bin
REDISPORT=6379
# 自己的redis-server路径(需要自己更改)
EXEC=/opt/redis-4.0.2/src/redis-server
# 自己的redis-cli路径(需要自己更改)
REDIS_CLI=/opt/redis-4.0.2/src/redis-cli                                                                                   

PIDFILE=/var/run/redis.pid
# 自己的redis.conf 路径(需要自己更改)
CONF="/opt/redis-4.0.2/redis.conf"                                                                                         
AUTH="1234"                                                                                                                  
                                                                                                                           
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                                                                  
                        sleep 2                                                                                            
                       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  

执行权限

chmod +x /etc/init.d/redis

尝试启动或停止redis

service redis start
service redis stop

开启服务自启动

chkconfig redis on

#3 测试

开启redis

service redis start
# 完美打开

关闭redis

service redis stop
# 不能关闭redis,为什么???????

#3.1 为什么不能正常关闭redis(可能会存在不能正常关闭的情况)

查看redis.pid

# 在脚本中,有一行代码是存放redis.pid目录
# PIDFILE=/var/run/redis.pid
# 进入 /var/run 目录
#  cd /var/run/ 

Linux下Redis开机自启(Centos)_第1张图片

修改redis配置文件(第四处修改)

cd /opt/redis-4.0.2
vim redis.conf
pidfile /var/run/redis.pid # 改成这样子

执行权限

chmod +x /etc/init.d/redis

测试 …

通过命令能正常关闭redis

你可能感兴趣的:(运维)