![](https://img.haomeiwen.com/i7269465/7aa79b078f95d404.png)
前面我们针对 Redis 的单机与高可用集群安装已经实践完成了,此篇文章是对其补充与完善。
对于 Redis 我们一般会使用到三种启动方式:直接启动、指定配置文件启动、开机自启动。
针对使用具体的场景我们选择不同的启动方式。
直接启动
- 使用场景
使用默认配置即可,无需更改,一般在单机开发与测试时使用。 - 启动方式
cd /usr/local/redis-5.0.3/src/
# 加上`&`号使redis以后台程序方式运行,默认未开启
./redis-server &
- 检测
#检测后台进程是否存在
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
指定配置文件启动
- 使用场景
一般是根据项目情况需要修改 Redis 配置文件,在单机环境和高可用环境下都要使用到。 - 启动方式
由于我们要指定配置文件,而配置文件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
开机自启动
-
使用场景
一般我们在生产环境中使用启动脚本方式启动 Redis 服务,启动脚本redis_init_script
位于解压后 Redis
的/utils/
目录下。
注:强烈推荐在生产环境中使用启动脚本方式启动 Redis 服务! -
启动方式
- 自启动脚本说明
#!/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
- 检测
查询开机启动列表
chkconfig --list
![](https://img.haomeiwen.com/i7269465/d9f9dcd8a81c4260.png)
如果看到 redisd 的服务,并且3,4,5都是on的话则成功,如果是off,则键入
chkconfig --level 345 redisd on
重启服务器,重启后查看 Redis 服务是否已自动运行起来了。
# 重启服务器
reboot
# 等待重启完成重连
# 查看 redis 服务
ps -ef|grep redis
网友评论