【Redis】Centos7.9 安装 Redis 5 教程

文章目录

  • [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

结果如下所示:

相关推荐
用户3074596982071 天前
Redis 延时队列详解
redis
GBASE1 天前
G术时刻 |GBase 8s数据库事务并发控制之封锁技术介绍(下)
数据库
烤代码的吐司君1 天前
Redis 数据结构 ZSet, BIT, HyperLogLog,Geo 空间数据
redis·后端
xiezhr2 天前
逛GitHub发现了一款免费的带AI功能的数据库管理工具
数据库·ai编程·dba
吃糖的小孩3 天前
给 QQ AI 机器人设计“可控记忆”:会话摘要、手动长期记忆与角色卡边界
数据库
笃行3503 天前
金仓数据库数据安全双防线:静态存储加密与传输加密实战
数据库
笃行3503 天前
金仓数据库物理备份实战:sys_rman 全流程演练与误覆盖抢救
数据库
笃行3503 天前
金仓数据库逻辑备份实战:从全库导出到 Schema 替换的完整闭环
数据库
leeyi4 天前
Checkpoint 机制:Agent 怎么在断电后接着跑
redis·aigc·agent