CentOS Redis 安装步骤详解 – wiki基地


CentOS 系统上 Redis 安装步骤详解:一份全面的指南

目录

  1. 引言:什么是 Redis?为什么选择在 CentOS 上安装?
  2. 安装前的准备工作
    • 系统要求与权限
    • 网络连接
    • 更新系统
  3. 方法一:使用 YUM 包管理器安装 Redis (推荐用于快速部署和一般用途)
    • 添加 EPEL 软件仓库 (为何需要 EPEL?)
    • 安装 Redis 软件包
    • 配置 Redis
    • 启动 Redis 服务
    • 设置 Redis 开机自启
    • 验证安装
    • 使用 YUM 安装的优缺点
  4. 方法二:从源码编译安装 Redis (推荐用于获取最新版本或自定义配置)
    • 安装编译所需的依赖
    • 下载 Redis 源码包
    • 解压源码包
    • 编译 Redis
    • 运行测试套件 (可选但推荐)
    • 安装 Redis 二进制文件
    • 配置 Redis
      • 创建必要的目录
      • 拷贝配置文件
      • 修改配置文件
    • 设置 Redis 服务 (使用 systemd)
      • 拷贝 systemd 服务单元文件示例
      • 修改服务单元文件
      • 重载 systemd 配置
      • 启动 Redis 服务
      • 设置 Redis 开机自启
    • 验证安装
    • 从源码安装的优缺点
  5. Redis 基础配置详解 (redis.conf)
    • bind:绑定IP地址
    • protected-mode:保护模式
    • port:监听端口
    • daemonize:后台运行
    • pidfile:PID文件路径
    • logfile:日志文件路径
    • dir:工作目录 (持久化文件位置)
    • requirepass:设置访问密码 (安全性)
    • 持久化配置 (RDB 和 AOF 简介)
  6. 增强 Redis 安全性
    • 设置强密码 (requirepass)
    • 配置绑定IP (bind)
    • 启用保护模式 (protected-mode)
    • 配置防火墙 (firewalldiptables)
  7. 管理 Redis 服务 (systemctl 命令)
    • 启动、停止、重启
    • 查看状态
    • 设置开机自启
  8. 连接并测试 Redis (redis-cli)
    • 连接到 Redis
    • 执行简单命令 (PING, SET, GET)
  9. 常见问题与故障排除
    • 服务无法启动 (检查日志)
    • 无法连接到 Redis (防火墙、bind 配置、服务状态)
    • 编译失败 (缺少依赖)
    • 内存不足
  10. 总结与下一步

1. 引言:什么是 Redis?为什么选择在 CentOS 上安装?

Redis (Remote Dictionary Server) 是一个开源的、使用 C 语言编写的、基于内存的、高性能的键值存储系统。它支持多种数据结构,如字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)等。由于数据存储在内存中,Redis 读写速度极快,常用作数据库、缓存和消息代理。

Redis 的主要特性:

  • 速度快: 数据存储在内存中,读写延迟极低。
  • 支持丰富的数据结构: 提供了多种数据结构,适用于各种应用场景。
  • 持久化: 支持RDB和AOF两种方式,可以将数据从内存保存到磁盘,保证数据不丢失。
  • 原子性: Redis 的所有操作都是原子性的,要么全部执行成功,要么全部不执行。
  • 丰富的功能: 支持事务、Lua脚本、发布/订阅、键空间通知、主从复制、Sentinel高可用、Cluster分布式等功能。

为什么选择在 CentOS 上安装 Redis?

CentOS (Community Enterprise Operating System) 是一个基于 Red Hat Enterprise Linux (RHEL) 源代码构建的免费、开源的操作系统。它以其稳定性、安全性和广泛的应用于服务器环境而闻名。许多企业和组织都选择 CentOS 作为其生产环境的服务器操作系统。因此,在 CentOS 上安装和部署 Redis 是非常常见且实际的需求,可以充分利用 CentOS 的稳定性和可靠性来构建高性能的应用后台。

本文将详细介绍两种在 CentOS 系统上安装 Redis 的方法:通过 YUM 包管理器安装和从源码编译安装。我们将详细分解每一步骤,并提供必要的配置和安全建议,帮助您顺利完成 Redis 的安装和部署。

2. 安装前的准备工作

在开始安装之前,确保您的 CentOS 系统满足以下条件:

  • 系统要求与权限: 需要一个运行中的 CentOS 7 或 8 或更高版本的系统。您需要以 root 用户身份登录,或者拥有使用 sudo 命令执行特权操作的权限。
  • 网络连接: 确保您的服务器能够访问互联网,以便下载软件包或源码。
  • 更新系统: 在安装任何新软件之前,强烈建议更新系统,以确保所有现有软件包都是最新的,这有助于避免潜在的兼容性问题和安全漏洞。

bash
sudo yum update -y

yum update -y 命令会更新系统中所有已安装的软件包。-y 选项表示在提示时自动回答“是”,无需手动确认。这个过程可能需要一些时间,取决于您的系统和网络速度。

3. 方法一:使用 YUM 包管理器安装 Redis (推荐用于快速部署和一般用途)

这是在 CentOS 系统上安装 Redis 最简单快捷的方法。通过 YUM 包管理器安装的 Redis 版本通常不是最新的稳定版,但对于大多数非前沿功能需求的应用场景而言,是足够稳定可靠的。

3.1 添加 EPEL 软件仓库 (为何需要 EPEL?)

EPEL (Extra Packages for Enterprise Linux) 是一个由 Fedora 社区维护的项目,为 RHEL 及衍生发行版(如 CentOS、Scientific Linux)提供了许多高质量的额外软件包,而这些软件包通常不在标准的 CentOS 软件仓库中。Redis 就属于此类软件包。因此,我们需要先安装 EPEL 仓库。

bash
sudo yum install epel-release -y

执行此命令后,YUM 将会添加 EPEL 仓库的配置。

3.2 安装 Redis 软件包

EPEL 仓库添加完成后,您就可以直接使用 YUM 安装 Redis 了。

bash
sudo yum install redis -y

YUM 会自动解决 Redis 的依赖关系,并下载安装 Redis 服务器及其相关的客户端工具。

3.3 配置 Redis

通过 YUM 安装的 Redis,其主配置文件通常位于 /etc/redis.conf。默认配置通常已经可用,但为了安全和生产环境的需求,您可能需要进行一些调整。

打开配置文件进行编辑:

bash
sudo vi /etc/redis.conf

以下是一些您可能需要关注和修改的关键配置项:

  • bind 127.0.0.1: 默认只允许本地连接。如果您希望其他服务器也能连接到 Redis,需要将其修改为服务器的私有 IP 地址(例如 bind 192.168.1.100),或者如果您了解安全风险并采取了其他安全措施(如防火墙),可以设置为 bind 0.0.0.0 允许所有IP连接。请注意:bind 设置为 0.0.0.0 且没有设置密码或配置防火墙是非常危险的行为。
  • protected-mode yes: 这是一个安全特性,当 bind 设置为公共IP或 0.0.0.0 且没有设置密码时,外部客户端无法连接。默认是开启的,建议保持开启,或者在设置了强密码和防火墙规则后关闭。
  • port 6379: Redis 默认监听端口为 6379。您可以根据需要修改。
  • daemonize yes: 默认情况下,YUM 安装的服务会通过 systemd 进行管理,Redis 会作为守护进程运行。如果此选项为 no,您需要确保 Redis 服务是通过 systemd 或其他方式在后台运行。通常对于 YUM 安装版本,这个选项在配置文件中可能是 no,而是通过 systemd 单元文件控制其后台运行。
  • requirepass foobared: 重要! 默认情况下,Redis 没有设置访问密码。在生产环境中,强烈建议取消注释并设置一个强密码。将 foobared 替换为您自己的密码。例如:requirepass YourSuperStrongPasswordHere。设置密码后,客户端连接时需要使用 AUTH 命令进行认证。

修改完成后,保存并关闭文件。在 vi 编辑器中,按 Esc 键,然后输入 :wq 并按回车。

3.4 启动 Redis 服务

配置完成后,您可以使用 systemctl 命令启动 Redis 服务:

bash
sudo systemctl start redis

3.5 设置 Redis 开机自启

为了确保服务器重启后 Redis 服务能自动启动,需要将其设置为开机自启:

bash
sudo systemctl enable redis

这将创建一个符号链接,使得 Redis 服务在系统启动时自动加载。

3.6 验证安装

您可以使用 systemctl status redis 命令检查 Redis 服务的运行状态:

bash
sudo systemctl status redis

如果服务正在运行,您会看到类似 active (running) 的输出。

更进一步,您可以使用 Redis 客户端工具 redis-cli 连接到服务器并执行一个简单的 PING 命令来验证:

bash
redis-cli ping

如果 Redis 正常运行,您会收到 PONG 回应。

如果您设置了密码,连接时需要加上 -a 参数或连接后使用 AUTH 命令:

bash
redis-cli -a YourSuperStrongPasswordHere ping

或者

bash
redis-cli
AUTH YourSuperStrongPasswordHere
ping

3.7 使用 YUM 安装的优缺点

优点:

  • 简单快捷: 只需要几条命令即可完成安装。
  • 依赖管理: YUM 自动处理所有依赖关系。
  • 服务管理: 集成到 systemd 中,方便管理服务的启动、停止和开机自启。
  • 稳定性: YUM 仓库中的版本通常经过了测试,相对稳定。

缺点:

  • 版本较旧: 通常无法获取 Redis 的最新稳定版本,可能无法使用最新的特性和优化。
  • 自定义性差: 编译选项和安装路径固定,不易进行深度定制。

4. 方法二:从源码编译安装 Redis (推荐用于获取最新版本或自定义配置)

如果您需要安装最新版本的 Redis,或者希望进行更细粒度的控制(例如指定安装路径、启用特定编译选项),那么从源码编译安装是更好的选择。

4.1 安装编译所需的依赖

在编译 Redis 之前,需要安装一些必要的开发工具和库。主要包括 C 编译器 (如 GCC) 和 make 工具,以及 tcl 用于运行 Redis 的测试套件。

bash
sudo yum groupinstall "Development Tools" -y # 安装开发工具组,包含GCC和make等
sudo yum install tcl tcl-devel -y # 安装tcl及其开发文件,用于make test

4.2 下载 Redis 源码包

访问 Redis 官方网站 (https://redis.io/download) 获取最新稳定版本的下载链接。使用 curlwget 命令下载源码包。以 Redis 7.2.4 为例(请根据官网最新版本替换链接):

“`bash

使用curl下载

curl -O http://download.redis.io/releases/redis-7.2.4.tar.gz

或者使用wget下载

wget http://download.redis.io/releases/redis-7.2.4.tar.gz

“`

4.3 解压源码包

下载完成后,使用 tar 命令解压源码包:

bash
tar -xzf redis-7.2.4.tar.gz

解压后会得到一个名为 redis-7.2.4 的目录,进入该目录:

bash
cd redis-7.2.4

4.4 编译 Redis

在源码目录中,执行 make 命令编译 Redis。

bash
make

这个过程会编译 Redis 服务器 (redis-server)、客户端 (redis-cli) 和其他一些实用工具。编译成功后,会看到类似 Hint: To run 'make test' ... 的提示。

4.5 运行测试套件 (可选但推荐)

Redis 提供了一个测试套件,可以用来验证编译后的程序是否正常工作。虽然是可选的,但强烈建议运行测试,以确保您的环境兼容且编译过程没有问题。

bash
make test

测试过程可能需要几分钟时间。如果所有测试都通过,您会看到类似 \o/ All tests passed without errors! 的输出。如果出现失败,需要检查编译过程是否有错误信息,或是否存在系统环境问题。

4.6 安装 Redis 二进制文件

编译并测试通过后,可以使用 make install 命令将编译好的二进制文件安装到系统路径下。默认情况下,Redis 会安装到 /usr/local/bin 目录下。

bash
sudo make install

这会将 redis-server, redis-cli, redis-benchmark, redis-check-aof, redis-check-rdb 等可执行文件复制到 /usr/local/bin

4.7 配置 Redis

从源码安装后,需要手动创建必要的目录和复制配置文件。

  • 创建必要的目录: Redis 运行时需要一个工作目录来存放持久化文件(RDB 快照和 AOF 日志)以及一个目录来存放 PID 文件。通常我们会创建 /var/lib/redis 作为数据目录,/var/run/redis/var/run 作为 PID 文件目录。同时,为了权限管理,创建一个专门的用户和组来运行 Redis 服务是更安全的做法,例如 redis 用户和组,并将数据目录的所有权赋予该用户。

    “`bash
    sudo mkdir /etc/redis # 创建配置文件目录
    sudo mkdir /var/lib/redis # 创建数据目录

    可选:创建redis用户和组并设置目录权限(更安全)

    sudo adduser redis -s /sbin/nologin

    sudo chown redis:redis /var/lib/redis

    “`

  • 拷贝配置文件: Redis 源码包中提供了一个示例配置文件 redis.conf。我们需要将其拷贝到标准的配置文件目录 /etc/redis/ 下。

    bash
    sudo cp redis.conf /etc/redis/

  • 修改配置文件: 编辑拷贝到 /etc/redis/redis.conf 文件。

    bash
    sudo vi /etc/redis/redis.conf

    与 YUM 安装类似,您需要修改以下重要配置项:

    • daemonize no: 重要! 默认是 no,意味着 Redis 会在前台运行。为了使用 systemd 进行服务管理,我们通常保持这个设置为 no,而让 systemd 来控制其后台运行。如果您想通过传统方式启动 Redis 并在后台运行,可以将其设置为 yes
    • pidfile /var/run/redis_6379.pid: 设置 PID 文件路径。确保此路径存在且 Redis 进程有写入权限。通常设置为 /var/run/redis.pid 或类似的路径。
    • logfile "": 默认日志输出到标准输出。建议指定一个日志文件路径,例如 logfile "/var/log/redis/redis.log"。如果指定了日志文件,还需要创建相应的日志目录并确保 Redis 进程有写入权限。
    • dir ./: 重要! 设置工作目录。这是 Redis 存放持久化文件(RDB、AOF)的目录。强烈建议将其修改为之前创建的 /var/lib/redis/ 目录:dir /var/lib/redis。确保运行 Redis 的用户对该目录有读写权限。
    • bind 127.0.0.1: 同 YUM 安装,根据需求修改。
    • protected-mode yes: 同 YUM 安装,根据需求修改。
    • port 6379: 同 YUM 安装,根据需求修改。
    • requirepass foobared: 重要! 同 YUM 安装,强烈建议设置一个强密码。

    修改完成后,保存并关闭文件。

4.8 设置 Redis 服务 (使用 systemd)

为了方便管理 Redis 服务的启动、停止和开机自启,我们需要创建一个 systemd 服务单元文件。Redis 源码包在 utils/systemd-redis/ 目录下提供了一个示例 redis.service 文件。

  • 拷贝 systemd 服务单元文件示例:

    “`bash

    假设您还在redis源码目录

    sudo cp utils/systemd-redis/redis.service /etc/systemd/system/
    “`

  • 修改服务单元文件: 编辑拷贝到 /etc/systemd/system/redis.service 文件,根据您的安装路径和配置进行调整。

    bash
    sudo vi /etc/systemd/system/redis.service

    检查并修改以下行,确保它们指向正确的路径:

    • ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf:确认 ExecStart 行指向正确的 redis-server 二进制文件路径(如果使用 make install 默认是 /usr/local/bin/) 和配置文件路径 (/etc/redis/redis.conf)。
    • ExecStop=/usr/local/bin/redis-cli -h 127.0.0.1 -p 6379 shutdown: 确认 ExecStop 指向正确的 redis-cli 路径,并使用正确的 IP 和端口执行 shutdown 命令。如果设置了密码,可能需要修改此行以包含认证信息,例如:ExecStop=/usr/local/bin/redis-cli -a YourSuperStrongPasswordHere -h 127.0.0.1 -p 6379 shutdown注意: 在服务文件中直接暴露密码不太安全,更安全的做法是使用一个脚本来执行 shutdown。但对于简单的设置,可以先这样配置以便服务能够正常停止。
    • PIDFile=/var/run/redis_6379.pid: 确认 PIDFile 的路径与您在 redis.conf 中设置的 pidfile 路径一致。
    • WorkingDirectory=/var/lib/redis: 建议添加或修改此行,将其设置为您在 redis.conf 中设置的 dir 目录 (/var/lib/redis)。
    • User=redis, Group=redis: 如果您创建了专门的 redis 用户和组来运行服务,需要取消注释或添加这两行。

    修改完成后,保存并关闭文件。

  • 重载 systemd 配置: 修改了 systemd 服务单元文件后,需要重载 systemd 配置使其生效。

    bash
    sudo systemctl daemon-reload

  • 启动 Redis 服务: 现在可以使用 systemctl 命令启动 Redis 服务了。

    bash
    sudo systemctl start redis

  • 设置 Redis 开机自启:

    bash
    sudo systemctl enable redis

4.9 验证安装

验证步骤与 YUM 安装方法相同,使用 systemctl status redis 检查服务状态,并使用 redis-cli pingredis-cli -a password ping 连接测试。

4.10 从源码安装的优缺点

优点:

  • 最新版本: 可以安装 Redis 的最新稳定版本,获取最新的功能、性能优化和 Bug 修复。
  • 高度自定义: 可以通过 make 选项进行编译时的定制,例如启用 Jemalloc 作为内存分配器(make MALLOC=jemalloc,通常能提升内存效率,但需要安装相关的开发库),或指定安装目录 (make PREFIX=/opt/redis install)。
  • 完全控制: 对安装过程有完全的控制权。

缺点:

  • 步骤繁琐: 相较于 YUM 安装,步骤更多,需要手动处理依赖、编译、配置和设置服务。
  • 依赖管理: 需要手动确保所有编译依赖都已安装。
  • 服务管理: 需要手动配置 systemd 或 init 脚本来实现服务管理。
  • 升级困难: 升级时需要重复下载、编译、安装等步骤,且可能需要手动迁移数据或处理配置兼容性问题。

5. Redis 基础配置详解 (redis.conf)

redis.conf 是 Redis 的核心配置文件,包含了大量的配置项,控制着 Redis 服务器的各种行为。无论是通过 YUM 还是源码安装,理解并正确配置 redis.conf 对于生产环境的部署至关重要。以下是一些最常见的和重要的配置项详解:

  • bind <IP地址>: 指定 Redis 监听的网络接口 IP 地址。默认是 127.0.0.1,只允许本地连接。设置为服务器的特定 IP 地址可以只允许来自该网络的连接。设置为 0.0.0.0 将监听所有可用的网络接口。
  • protected-mode yes|no: Redis 3.2 引入的安全模式。当设置为 yes 时,如果 bind 设置为公共 IP 或 0.0.0.0 且没有设置密码,则只接受本地连接。这有助于防止未经授权的外部访问。如果设置了密码并通过防火墙限制了访问,可以设置为 no
  • port <端口号>: 指定 Redis 监听的 TCP 端口号。默认是 6379。
  • daemonize yes|no: 指定 Redis 是否作为守护进程在后台运行。yes 表示后台运行,no 表示前台运行。使用 systemd 管理服务时,通常将此设置为 no,由 systemd 控制后台运行。
  • pidfile <路径>: 当 daemonize 设置为 yes 时,指定存放 Redis 进程 ID (PID) 的文件路径。
  • logfile <路径>|stdout: 指定日志文件的路径。如果设置为 stdout,日志将输出到标准输出。建议指定一个文件路径,如 /var/log/redis/redis.log,方便日志查看和管理。
  • dir <路径>: 指定 Redis 的工作目录。这是 Redis 存放 RDB 快照文件和 AOF 重写临时文件的地方。如果使用了 AOF 持久化,AOF 文件本身也通常存放在此目录。务必将其设置为一个持久化的、Redis 用户有写入权限的目录,例如 /var/lib/redis
  • requirepass <密码>: 设置 Redis 访问密码。取消注释并修改 foobared 为一个强密码。客户端连接后,必须先使用 AUTH <密码> 命令进行认证。在生产环境中强烈建议设置密码。
  • save <秒数> <更改次数>: 配置 RDB 持久化策略。例如 save 900 1 表示如果900秒(15分钟)内至少有1个键被修改,则执行一次快照;save 300 10 表示如果300秒(5分钟)内至少有10个键被修改,则执行一次快照;save 60 10000 表示如果60秒内至少有10000个键被修改,则执行一次快照。您可以配置多个 save 行来满足不同的时间/修改次数组合。如果不需要 RDB 持久化,可以注释掉所有 save 行。
  • appendonly yes|no: 启用 AOF (Append Only File) 持久化。yes 启用,no 禁用 (默认)。AOF 以追加的方式记录 Redis 的写命令,通过重放这些命令来恢复数据。
  • appendfilename "appendonly.aof": 指定 AOF 文件名。
  • appendfsync always|everysec|no: 配置 AOF 的刷盘策略。
    • always: 每条写命令都立即同步到 AOF 文件,最安全,但性能开销最大。
    • everysec: 每秒同步一次(默认),兼顾安全和性能,丢失的数据小于1秒。
    • no: 完全依赖操作系统进行同步,最快,但数据丢失风险最大。
  • 还有许多其他配置项,如内存限制 (maxmemory)、客户端最大连接数 (maxclients)、集群相关配置、慢查询日志 (slowlog-log-slower-than, slowlog-max-len) 等,您可以根据具体需求查阅完整的 redis.conf 文件或 Redis 官方文档进行配置。

6. 增强 Redis 安全性

Redis 默认是快速开放的,为了生产环境的安全,必须采取措施保护您的 Redis 实例:

  • 设置强密码 (requirepass): 这是最基本的安全措施,阻止未经认证的连接。
  • 配置绑定IP (bind): 将 Redis 绑定到特定的内部IP地址,而不是 0.0.0.0,限制只有受信的网络可以连接。
  • 启用保护模式 (protected-mode yes): 利用 Redis 自身的安全特性。
  • 配置防火墙: 在服务器的防火墙上只开放 Redis 监听端口 (默认为 6379) 给需要连接的客户端 IP 地址段。

如果您使用 CentOS 7 或更高版本,默认的防火墙管理工具是 firewalld

“`bash

假设Redis监听默认端口 6379

永久开放 6379/tcp 端口

sudo firewall-cmd –add-port=6379/tcp –permanent

如果需要限制源IP,例如只允许 192.168.1.0/24 网段访问

sudo firewall-cmd –permanent –zone=public –add-rich-rule=’rule family=”ipv4″ source address=”192.168.1.0/24″ port protocol=”tcp” port=”6379″ accept’

重新加载防火墙规则使其生效

sudo firewall-cmd –reload
“`

如果您使用较旧的 CentOS 版本或仍然使用 iptables

“`bash

假设Redis监听默认端口 6379

允许所有来源IP访问 6379/tcp 端口

sudo iptables -A INPUT -p tcp –dport 6379 -j ACCEPT

或者只允许特定IP访问,例如 192.168.1.100

sudo iptables -A INPUT -s 192.168.1.100 -p tcp –dport 6379 -j ACCEPT

保存 iptables 规则 (不同版本和配置保存方式可能不同,例如 service iptables save 或 iptables-save > /etc/sysconfig/iptables)

service iptables save

“`

选择一种防火墙工具进行配置即可。务必根据您的实际网络环境和安全策略来配置防火墙规则。

7. 管理 Redis 服务 (systemctl 命令)

在 CentOS 7 及更高版本中,使用 systemctl 命令是管理 Redis 服务(无论是 YUM 安装还是源码安装并配置了 systemd 服务单元文件)的标准方式。

  • 启动服务:
    bash
    sudo systemctl start redis
  • 停止服务:
    bash
    sudo systemctl stop redis
  • 重启服务:
    bash
    sudo systemctl restart redis
  • 查看服务状态:
    bash
    sudo systemctl status redis

    这将显示服务是否正在运行、PID、日志输出片段等信息。
  • 设置开机自启:
    bash
    sudo systemctl enable redis
  • 禁用开机自启:
    bash
    sudo systemctl disable redis
  • 查看服务日志 (使用 journalctl):
    bash
    sudo journalctl -u redis -f

    -u redis 指定查看 redis 服务的日志,-f 表示实时跟踪日志输出。这是调试服务启动问题时非常有用的命令。

8. 连接并测试 Redis (redis-cli)

redis-cli 是 Redis 提供的命令行客户端工具,用于与 Redis 服务器进行交互。

  • 连接到 Redis:
    bash
    redis-cli

    如果 Redis 运行在本地默认端口 (6379),并且没有设置密码或在配置文件中指定了 requirepass 但本地连接无需密码 (通过 bind 127.0.0.1protected-mode yes),可以直接连接。

    如果 Redis 运行在不同的主机、端口或设置了密码:
    “`bash

    连接到指定IP和端口

    redis-cli -h -p <端口号>

    连接时同时认证

    redis-cli -a <密码>

    连接到指定IP、端口并认证

    redis-cli -h -p <端口号> -a <密码>
    “`

  • 执行简单命令 (PING, SET, GET):
    连接成功后,您会看到 Redis 提示符 127.0.0.1:6379> (IP和端口可能不同)。现在可以执行 Redis 命令了。

    “`redis-cli
    PING
    PONG # 收到 PONG 表示连接正常

    SET mykey “Hello Redis”
    OK # 设置一个键值对

    GET mykey
    “Hello Redis” # 获取键的值

    QUIT # 退出客户端
    “`

9. 常见问题与故障排除

  • 服务无法启动:

    • 检查 Redis 服务状态:sudo systemctl status redis
    • 查看服务日志:sudo journalctl -u redis -f。错误信息通常会在这里显示,例如配置文件错误、权限问题、端口被占用等。
    • 检查配置文件 /etc/redis/redis.conf (或 /etc/redis.conf) 是否有语法错误或配置问题(如 dir 目录不存在或无权限)。
    • 检查端口是否被占用:sudo netstat -tulnp | grep 6379 (如果 netstat 未安装,先安装 sudo yum install net-tools)。
  • 无法连接到 Redis:

    • 确认 Redis 服务正在运行:sudo systemctl status redis
    • 检查 redis.conf 中的 bind 配置,确认客户端的 IP 允许连接。
    • 检查防火墙规则 (firewalldiptables),确保 Redis 端口对客户端 IP 是开放的。
    • 检查是否设置了密码 (requirepass),客户端连接时是否提供了正确的密码。
    • 确认客户端连接的 IP 和端口是否与 Redis 实际监听的 IP 和端口一致。
  • 从源码编译失败:

    • 检查是否安装了所有必要的编译依赖 (Development Tools, tcl, tcl-devel)。
    • 查看 make 命令输出的错误信息,根据错误提示解决问题(例如缺少某个库文件)。
  • 内存不足:

    • 如果 Redis 运行时遇到内存相关错误或性能下降,可能需要调整 maxmemory 配置,或者升级服务器内存。同时检查持久化配置是否合理,避免因持久化操作导致内存占用过高。

10. 总结与下一步

本文详细介绍了在 CentOS 系统上通过 YUM 包管理器和从源码编译两种方式安装 Redis 的完整步骤,并涵盖了基本的配置、安全性加固和服务的管理。

  • 对于大多数用户和场景,使用 YUM 安装 Redis 是最便捷的选择。
  • 如果需要最新版本或进行深度定制,从源码编译是必要的。

安装完成后,您已经拥有了一个运行中的 Redis 实例。接下来,您可以根据您的应用需求进行更深入的配置和使用:

  • 配置持久化: 根据数据重要性和性能需求,选择并配置 RDB 和/或 AOF 持久化策略。
  • 配置主从复制: 设置 Redis 主从复制来提高读取性能和数据冗余。
  • 探索 Sentinel 或 Cluster: 对于高可用和大数据量的场景,考虑部署 Redis Sentinel 或 Redis Cluster。
  • 监控 Redis: 设置监控系统 (如 Prometheus + Grafana, Zabbix 等) 来监控 Redis 的性能指标、内存使用、连接数等。
  • 备份与恢复: 制定定期备份策略,并熟悉数据恢复过程。
  • 客户端开发: 在您的应用中使用各种编程语言提供的 Redis 客户端库来与 Redis 进行交互。

希望这篇详细的指南能帮助您在 CentOS 系统上成功安装和部署 Redis。


发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部