Redis 三种启动方式

Redis 三种启动方式_第1张图片
redis自启动_2019-02-01_09-59-14.png

前面我们针对 Redis 的单机与高可用集群安装已经实践完成了,此篇文章是对其补充与完善。

对于 Redis 我们一般会使用到三种启动方式:直接启动、指定配置文件启动、开机自启动。
针对使用具体的场景我们选择不同的启动方式。

直接启动

  1. 使用场景
    使用默认配置即可,无需更改,一般在单机开发与测试时使用。
  2. 启动方式
cd /usr/local/redis-5.0.3/src/
# 加上`&`号使redis以后台程序方式运行,默认未开启
./redis-server &
  1. 检测
#检测后台进程是否存在
ps -ef |grep redis
#检测6379端口是否在监听
netstat -lntp | grep 6379
#使用`redis-cli`客户端检测连接是否正常
./redis-cli
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> set key "hello world"
OK
127.0.0.1:6379> get key
"hello world"
    ```
4. 停止
```shell
#使用客户端
redis-cli shutdown
#因为Redis可以妥善处理SIGTERM信号,所以直接kill -9也是可以的
kill -9 PID

指定配置文件启动

  1. 使用场景
    一般是根据项目情况需要修改 Redis 配置文件,在单机环境和高可用环境下都要使用到。
  2. 启动方式
    由于我们要指定配置文件,而配置文件redis.conf在解压后的 Redis 根目录下,我们可以修改此文件并使用,也可以复制一份作为自己的配置文件,这里我复制一份稍做修改使用。
cd /usr/local
mkdir redis-cluster
cd redis-cluster
mkdir 7001
cp /usr/local/redis-5.0.3/redis.conf /usr/local/redis-cluster/7001/redis.conf

我们看下常用配置:

# 修改daemonize为yes,即默认以后台程序方式运行(还记得前面手动使用&号强制后台运行吗)。
daemonize no
#可修改默认监听端口
port 6379 
# 修改生成默认日志文件位置
logfile "/home/zoluo/logs/redis.log"
# 配置持久化文件存放位置
dir /home/zoluo/data/redisData
# 配置密码
requirepass zoluo

启动时指定配置文件:

# 加上`&`号使redis以后台程序方式运行
/usr/local/redis-5.0.3/src/redis-server /usr/local/redis-cluster/7001/redis.conf &
# 如果更改了端口,使用`redis-cli`客户端连接时,也需要指定端口,例如:
redis-cli -p 7001
# 如果增加了密码项,则需要加`-a`:
redis-cli -a zoluo -p 7001

开机自启动

  1. 使用场景
    一般我们在生产环境中使用启动脚本方式启动 Redis 服务,启动脚本 redis_init_script 位于解压后 Redis
    /utils/目录下。
    注:强烈推荐在生产环境中使用启动脚本方式启动 Redis 服务!

  2. 启动方式

    • 自启动脚本说明
#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.

### BEGIN INIT INFO
# Provides:     redis_6379
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    Redis data structure server
# Description:          Redis data structure server. See https://redis.io
### END INIT INFO


# redis服务器监听的端口
REDISPORT=7001
# 服务端所处位置,在make install后默认存放与`/usr/local/bin/redis-server`,如果未make install则需要修改该路径在解压处
EXEC=/usr/local/bin/redis-server
#客户端位置,同上
CLIEXEC=/usr/local/bin/redis-cli


# Redis 的 PID 文件位置,如果修改了端口,注意在 Redis 配置文件中修改相应的 PID 文件名 pidfile /var/run/redis_7001.pid
PIDFILE=/var/run/redis_${REDISPORT}.pid
# 配置文件位置,必须重新指定一份,不能使用启动的配置文件
CONF="/etc/redis/${REDISPORT}.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
        ;;
    stop)
        if [ ! -f $PIDFILE ]
        then
                echo "$PIDFILE does not exist, process is not running"
        else
                PID=$(cat $PIDFILE)
                echo "Stopping ..."
                # 这里关闭脚本,如果之前设置了 Redis 密码,需要修改为 
                # $CLIEXEC -a zoluo -p $REDISPORT shutdown
                $CLIEXEC -p $REDISPORT 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
  • 环境配置
    (1)根据启动脚本要求,将修改好的配置文件以端口为名复制一份到指定目录。需使用 root 用户,如果是非 root 需要给予权限
#把 Redis 启动的配置文件复制一份重命名为 6379.conf 就可以的
(这操作对应的是 CONF="/etc/redis/${REDISPORT}.conf")
mkdir /etc/redis
cp /usr/local/redis-cluster/7001/redis.conf /etc/redis/6379.conf

(2)将启动脚本复制到/etc/init.d目录下,本例将启动脚本命名为 redisd(通常都以d结尾表示是后台自启动服务)

cp /usr/local/redis-5.0.3/utils/redis_init_script /etc/init.d/redisd

(3)设置为开机自启动

设置为开机自启动服务器
chkconfig redisd on
 
#打开服务
service redisd start
 
#关闭服务
service redisd stop

注:如果设置为开机自启动时,报错失败,参考下面的配置:
在启动脚本开头添加如下两行注释以修改其运行级别

#!/bin/sh
# chkconfig:   2345 90 10
# description:  Redis is a persistent key-value database
  1. 检测
    查询开机启动列表
chkconfig --list
Redis 三种启动方式_第2张图片
redis自启动_2019-02-01_09-57-14.png

如果看到 redisd 的服务,并且3,4,5都是on的话则成功,如果是off,则键入

chkconfig --level 345 redisd on

重启服务器,重启后查看 Redis 服务是否已自动运行起来了。

# 重启服务器
reboot
# 等待重启完成重连
# 查看 redis 服务
ps -ef|grep redis

你可能感兴趣的:(Redis 三种启动方式)