【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

结果如下所示:

相关推荐
云计算磊哥@1 小时前
运维开发宝典026-MySQL02数据库表操作
运维·数据库·运维开发
Steadfast_GG1 小时前
Redis中的通用命令
redis·缓存
小二·1 小时前
Redis 内存溢出(OOM)排查与恢复实战
数据库·redis·bootstrap
pqk6V6Vep1 小时前
Redis 分布式锁进阶第一篇讲解
数据库·redis·分布式
giaz14n9X2 小时前
Redis 分布式锁进阶第六十一篇
数据库·redis·分布式
是一个Bug2 小时前
MongoDB:像搭积木一样存数据
数据库·mongodb
ULIi096kr2 小时前
MySQL解决Too many connections报错:连接数爆满排查、优化与永久解决方案
数据库·mysql·adb
SL-staff3 小时前
(一)数据源配置 —— JVS-Rules规则引擎 V2.5 操作说明介绍
数据库·jar·规则引擎·数据源·jvs-rules·api 接口·jvs低代码
摇滚侠3 小时前
Spring 零基础入门到进阶 基于 XML 管理 Bean 14-28
xml·数据库·spring