CentOS7安装Redis及配置开机自启动

本文提供了一种在CentOS7上安装Redis并配置开机自启动的详细教程,包括下载安装包、安装、配置环境变量、设置service及systemctl启动方式,还特别提到了允许远程访问的配置项bind和daemonize的调整。

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

CentOS7安装Redis及配置开机自启动

上次总结了篇CentOS7系统安装,这次说下Redis的安装及配置开机自启动,不说废话直接上傻瓜式教程。

1. 下载redis安装包

# 安装wget
yum install –y wget
# 下载redis-5.0.5.tar.gz
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
# 若下载失败(下载成功此步跳过),可安装rz从本地上传redis-5.0.5.tar.gz
yum -y install lrzsz
rz

2. 安装redis

# 解压缩
tar xzf redis-5.0.5.tar.gz
# 进入目录准备安装
cd redis-5.0.5
# 安装gcc,否则会编译失败/bin/sh: cc: command not found
yum -y install gcc
# 读取Makefile文件进行编译(未安装gcc导致编译失败,可运行make distclean命令清除编译失败产生文件,再次运行make命令,或者直接删除redis-5.0.5目录重新安装)
make
# 安装到指定目录
make install PREFIX=/usr/local/redis

3. 配置环境变量

# 打开配置文件
vi /etc/profile
# 在文件末尾加入下面代码,:wq保存退出(无权限可:q!强制退出,换root账户重来)
export REDIS_HOME=/usr/local/redis
export PATH=$REDIS_HOME/bin:$PATH
# 使环境变量即时生效
source /etc/profile

4. 配置service启动方式(可跳到第5步,配置systemctl启动方式)

# 进入redis解压目录
cd ~/redis-5.0.5/utils
# 运行安装服务
./install_server.sh
# 设置端口号,默认[6379],默认即可
# 设置配置文件地址,默认[/etc/redis/6379.conf],我选择放到/usr/local/redis/etc/6379.conf
# 设置日志文件地址,默认[/var/log/redis_6379.log],默认即可
# 设置数据目录(持久化),默认[/var/lib/redis/6379],默认即可
# 设置redis可执行目录,默认[/usr/local/redis/bin/redis-server],默认即可
# 最后回车确认

# 查看redis服务状态
service redis_6379 status
# 启动redis服务
service redis_6379 start
# 停止redis服务
service redis_6379 stop
# 重新启动redis服务
service redis_6379 restart
# 配置redis开机自动启动
chkconfig redis_6379 on
# 配置redis开机不自动启动
chkconfig redis_6379 off

5. 另附配置systemctl启动方式(做过第4步可忽略此步)

# 将redis解压目录的redis配置文件复制过来
mkdir /usr/local/redis/etc
cp redis.conf /usr/local/redis/etc/6379.conf
# 修改配置文件支持systemctl启动方式
sed -i -e 's:^daemonize .*:daemonize yes:' -e 's:^supervised .*:supervised systemd:' /usr/local/redis/etc/6379.conf

# 添加自定义系统服务
cat > /usr/lib/systemd/system/redis_6379.service <<EOF
[Unit]
Description=Redis Server Manager
After=network.target

[Service]
Type=forking
PIDFile=/var/run/redis_6379.pid
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/etc/6379.conf
ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/bin/kill -SIGINT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF

# 重新加载系统服务配置
systemctl daemon-reload

# 查看redis服务状态
systemctl status redis_6379
# 启动redis服务
systemctl start redis_6379
# 停止redis服务
systemctl stop redis_6379
# 重新启动redis服务
systemctl restart redis_6379
# 配置redis开机自动启动
systemctl enable redis_6379
# 配置redis开机不自动启动
systemctl disable redis_6379

6. 开启redis远程访问

# 修改redis配置文件
sed -i -e 's:^bind 127.0.0.1$:bind 0.0.0.0:' /usr/local/redis/etc/6379.conf

关于文中提到的redis.conf配置项说明

bind: 绑定服务器网络接口地址,如本机有内网和外网两个IP,可以绑定内网IP使redis仅接受从内网IP进来的请求,默认bind 127.0.0.1(接受本地IP请求),改为bind 0.0.0.0(接受所有请求,仅测试使用)。

daemonize: 是否以守护进程方式运行,默认为 no,改为yes 以守护进程的方式运行。

supervised: 可以通过upstart和systemd等方式管理Redis守护进程 ,默认为 no,改为 systemd 通过systemd管理Redis守护进程。

这里仅为本地测试环境,配置较为简单,其他还有很多相关配置,请根据实际需要进行配置。

<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 ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值