Redis 在Centos7下配置开机自启动

本文介绍如何设置Redis在Linux系统中开机自动启动。包括编写配置脚本、修改redis.conf配置文件、设置文件执行权限及开机启动等步骤,并提供了解决常见问题的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

设置Redis开机启动需要如下几个步骤:

  1. 编写配置脚本 [ vim /etc/init.d/redis ]
#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
#chkconfig: 2345 80 90
#description:auto_run
REDISPORT=6379
EXEC=/usr/local/bin/redis/src/redis-server
CLIEXEC=/usr/local/bin/redis/src/redis-cli

PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/usr/local/bin/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
        ;;
    stop)
        if [ ! -f $PIDFILE ]
        then
                echo "$PIDFILE does not exist, process is not running"
        else
                PID=$(cat $PIDFILE)
                echo "Stopping ..."
                $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. 修改redis.conf,打开后台运行选项
# By default Redis does not run as a daemon. Use 'yes' if you need it.
# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
daemonize yes
  1. 修改文件执行权限
chmod +x /etc/init.d/redis
  1. 设置开机启动
# 尝试启动或停止 redis
./redis start
./redis stop
# 开启服务自启动
chkconfig redis on

5.异常处理
A. 执行 [ service redis start ] 提示服务不支持 chkconfig,在开机脚本前添加如下内容:

#chkconfig: 2345 80 90
#description:auto_run

B. 如果在Windows下编辑的开机脚本,由于Windows中的换行符为CRLF, 而Unix(或Linux)换行符为LF,会导致开机脚本执行报错,把脚本通过notepad++转化为Unix格式。

<think>好的,我现在需要帮助用户解决如何在CentOS 7配置Redis开机自启动。首先,我得回想一下CentOS 7的服务管理机制,知道它使用的是systemd,所以用户需要创建一个systemd服务单元文件。 接下来,我需要确定用户是否已经安装了Redis。如果用户是从源代码安装的,可能默认没有systemd服务文件,而如果是通过yum安装的,可能已经存在。不过根据常见情况,用户可能使用的是源码安装,所以需要手动创建服务文件。 然后,我需要考虑服务文件的正确配置。包括ExecStart指向正确的redis-server路径和配置文件位置,以及设置相关的运行参数。需要确保路径正确,否则服务无法启动。同时,用户可能需要修改Type为forking,如果Redis以守护进程运行的话。 权限也是一个关键点,服务文件应该放在/etc/systemd/system/目录下,并且需要执行systemctl daemon-reload来重新加载配置。此外,可能需要检查Redis的数据目录和日志文件的权限,确保redis用户有写入权限,避免启动失败。 用户可能遇到的问题包括路径错误、权限不足,或者SELinux设置导致的问题。需要提示用户检查日志,使用journalctl -u redis.service来查看错误信息,并考虑暂时禁用SELinux或调整策略。 最后,要确保用户完成所有步骤后测试服务是否正常启动,并验证开机自启动是否生效。可能还需要提醒用户如果遇到防火墙问题,需要开放相应的端口,但这个问题可能超出当前问题的范围,不过可以作为附加提示。</think>### CentOS 7 配置 Redis 开机自启动指南(Systemd 方式) --- #### **一、创建 Systemd 服务文件** 1. 新建服务配置文件: ```bash sudo vim /etc/systemd/system/redis.service ``` 2. 写入以下内容(按实际情况修改关键路径): ```ini [Unit] Description=Redis In-Memory Data Store After=network.target [Service] Type=simple User=redis Group=redis ExecStart=/usr/local/bin/redis-server /etc/redis.conf # Redis安装路径和配置文件路径 ExecStop=/usr/local/bin/redis-cli shutdown # 停止命令 Restart=always RestartSec=3 LimitNOFILE=65535 OOMScoreAdjust=-1000 [Install] WantedBy=multi-user.target ``` --- #### **二、关键配置说明** 1. **路径检查**: - 使用 `which redis-server` 确认二进制文件路径 - 默认配置文件路径通常为 `/etc/redis.conf` 2. **专用用户**(建议操作): ```bash sudo groupadd redis sudo useradd -r -g redis -s /bin/false redis ``` 3. **权限设置**: ```bash sudo chown -R redis:redis /var/lib/redis # 数据目录 sudo chown redis:redis /etc/redis.conf # 配置文件 ``` --- #### **三、启用并测试服务** 1. 重载 systemd 配置: ```bash sudo systemctl daemon-reload ``` 2. 启动 Redis 服务: ```bash sudo systemctl start redis ``` 3. 设置开机自启: ```bash sudo systemctl enable redis ``` 4. 验证服务状态: ```bash sudo systemctl status redis # 输出应显示 "active (running)" ``` --- #### **四、常见问题排查** 1. **路径错误**: ```bash # 查看日志定位问题 journalctl -u redis.service -b --no-pager ``` 2. **权限问题**: ```bash # 检查数据目录和日志文件权限 sudo chmod 755 /var/log/redis.log ``` 3. **SELinux 限制**(可选): ```bash # 临时禁用 sudo setenforce 0 # 或创建 SELinux 策略 sudo audit2allow -a -M redispolicy < /var/log/audit/audit.log sudo semodule -i redispolicy.pp ``` --- #### **五、补充说明** | 配置项 | 作用 | | --- | --- | | `Type=simple` | 标准服务类型 | | `Restart=always` | 异常退出自动重启 | | `OOMScoreAdjust` | 降低被 OOM Killer 终止的概率 | --- ### 完整操作流程示例 ```bash # 步骤 1:创建服务文件 sudo tee /etc/systemd/system/redis.service <<'EOF' [Unit] Description=Redis Server After=network.target [Service] Type=forking ExecStart=/usr/local/bin/redis-server /etc/redis.conf ExecStop=/usr/local/bin/redis-cli shutdown Restart=always User=redis Group=redis [Install] WantedBy=multi-user.target EOF # 步骤 2:创建 Redis 用户 sudo groupadd -r redis && sudo useradd -r -g redis redis # 步骤 3:设置权限 sudo mkdir -p /var/lib/redis sudo chown redis:redis /var/lib/redis # 步骤 4:启用服务 sudo systemctl daemon-reload sudo systemctl enable --now redis ``` --- ### 通过 Yum 安装的 Redis 额外说明 如果通过 EPEL 仓库安装: ```bash sudo yum install -y epel-release sudo yum install -y redis # 直接使用预置服务文件 sudo systemctl enable redis ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值