文章目录
- [1. 使用 yum 安装](#1. 使用 yum 安装)
- [2. 创建符号链接](#2. 创建符号链接)
-
- [2.1 针对可执行程序设置符号链接](#2.1 针对可执行程序设置符号链接)
- [2.2 针对配置文件设置符号链接](#2.2 针对配置文件设置符号链接)
- [3. 修改配置文件](#3. 修改配置文件)
-
- [3.1 设置 ip 地址](#3.1 设置 ip 地址)
- [3.2 关闭保护模式](#3.2 关闭保护模式)
- [3.3 启动守护进程](#3.3 启动守护进程)
- [3.4 设置工作目录](#3.4 设置工作目录)
- [3.5 设置日志目录](#3.5 设置日志目录)
- [3.6 修改新建目录的团队权限(关键避坑)](#3.6 修改新建目录的团队权限(关键避坑))
- [4. 启动 redis](#4. 启动 redis)
- [5. 停止 redis](#5. 停止 redis)
- [6. 查看工作目录和日志文件](#6. 查看工作目录和日志文件)
1. 使用 yum 安装
CentOS 7 已经在 2024 年 6 月 30 日官方停止维护(EOL,End of Life)了,所以更换为阿里云的源。
请在 /etc/yum.repos.d 目录下依次执行以下命令:
bash
sudo tee /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo << 'EOF'
[centos-sclo-rh]
name=CentOS-7 - SCLo rh
baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/sclo/x86_64/rh/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
EOF
清理并重新建立缓存
bash
# 写入完成后,再次刷新 yum 缓存
sudo yum clean all
sudo yum makecache
缓存成功建立后,直接执行安装:
bash
# 安装 redis
sudo yum install rh-redis5-redis -y
结果如下所示:

2. 创建符号链接
默认安装的目录为 /opt/rh/rh-redis5/root/usr/bin/,藏的太深了,不方便使用。
我们通过符号链接,把需要用到的关键内容设置到方便使用的目录中。
2.1 针对可执行程序设置符号链接
命令如下所示:
bash
# 进入到bin目录
cd /usr/bin
# 链接 Redis 服务端
ln -s /opt/rh/rh-redis5/root/usr/bin/redis-server ./redis-server
# 链接 Redis 哨兵
ln -s /opt/rh/rh-redis5/root/usr/bin/redis-sentinel ./redis-sentinel
# 链接 Redis 客户端
ln -s /opt/rh/rh-redis5/root/usr/bin/redis-cli ./redis-cli
查看软链接是否创建成功
bash
ls -l | grep redis
看到 -> 箭头指向源路径,就是成功了。
测试是否可用
bash
./redis-cli --version
能显示 redis-cli 5.x.x 说明链接正常。
结果如下所示:

2.2 针对配置文件设置符号链接
命令如下所示:
bash
# 进入系统配置目录
cd /etc/
# 创建软链接:把 rh-redis5 的配置目录,映射成 ./redis
ln -s /etc/opt/rh/rh-redis5/ ./redis
它是给 Redis 5 的配置目录创建软链接,和上一组命令配套使用,目的是统一 Redis 的路径,方便管理。

3. 修改配置文件
进入到 /etc/redis 目录,然后使用 vim 打开 redis.conf 配置文件。
bash
# 注意,如果你是普通用户,必须添加sudo
sudo vim redis.conf
3.1 设置 ip 地址
把 bind 127.0.0.1 修改为 bind 0.0.0.0。这样就能够保证 redis 服务启动以后能被其他主机访问到。

3.2 关闭保护模式
把 protected-mode 修改为 no,同样,这里也是为了保证跨主机访问。

3.3 启动守护进程
把 daemonize 修改为 yes。
因为 Linux 中的进程分为:前台进程和后台进程。前台进程会随着终端的关闭而随之被 kill 掉;后台进程不会随着终端关闭而关闭。
那么这样保证程序会以 "后台进程" 的方式运行,即守护进程。

3.4 设置工作目录
后续如果 redis 生成一些数据文件之类的东西,那么都会被存放到工作目录中。
先创建工作目录
bash
sudo mkdir -p /var/lib/redis
再在 /etc/redis/redis.conf 配置文件中,设置刚刚创建好的工作目录
bash
dir /var/lib/redis
结果如下所示:

3.5 设置日志目录
先创建日志目录
bash
sudo mkdir -p /var/log/redis/
再在 /etc/redis/redis.conf 配置文件中,设置日志目录
bash
logfile /var/log/redis/redis-server.log
结果如下所示:

3.6 修改新建目录的团队权限(关键避坑)
由于我们刚刚手动创建了 /var/lib/redis 和 /var/log/redis/ 目录,这两个目录默认的所有者是 root。而通过 SCL 安装的 Redis 默认会以 redis 用户身份去运行和读写,这会导致 Redis 无法写入数据文件和日志。
因此,在启动 Redis 之前,必须将这两个目录的所有权变更为 redis 用户。
命令如下所示:
bash
# 修改工作目录的所有者和所属组
sudo chown -R redis:redis /var/lib/redis
# 修改日志目录的所有者和所属组
sudo chown -R redis:redis /var/log/redis
查看权限是否修改成功:
bash
ls -ld /var/lib/redis /var/log/redis
看到目录的所有者和组都变成 redis,即代表修改成功。
4. 启动 redis
命令如下所示:
bash
sudo redis-server /etc/redis/redis.conf
查看 redis 是否成功启动:
bash
sudo netstat -anp | grep redis
结果如下所示:

连接 redis 服务器
bash
redis-cli
结果如下所示:

5. 停止 redis
先查看到 redis-server 的 pid
bash
ps aux | grep redis
然后通过 kill 命令直接杀死 redis 进程
bash
sudo kill 进程id
结果如下所示:

补充:更优雅的停止方式是使用 redis-cli shutdown 命令,它会让 Redis 安全地保存数据并退出,避免数据丢失。
6. 查看工作目录和日志文件
命令如下:
bash
# 进入到工作目录
cd /var/log/redis/
结果如下所示:
命令如下:
bash
# 进入到日志目录
cd /var/log/redis/
# 查看日志
cat redis-server.log
结果如下所示:
