快速入门:从零开始安装 Redis – wiki基地


快速入门:从零开始安装 Redis

欢迎来到 Redis 的世界!Redis 是一个开源、高性能、基于内存的键值存储系统,常被用作数据库、缓存和消息中间件。凭借其闪电般的速度和丰富的数据结构,Redis 在现代 Web 应用、高并发系统以及实时数据处理中扮演着越来越重要的角色。

如果你是一个开发者,想要在本地搭建一个 Redis 环境进行学习、开发或测试;或者你是一名系统管理员,准备在服务器上部署 Redis,那么这篇“从零开始”的快速入门指南将非常适合你。我们将详细介绍在不同操作系统上安装 Redis 的多种方法,并指导你完成验证和基本配置。

本文内容较多,覆盖了多种安装方式,你可以根据自己的操作系统和偏好选择最适合的部分进行阅读和实践。

文章目录

  1. Redis 是什么?为什么选择安装它?
    • Redis 的核心特性
    • Redis 的应用场景
    • 自己安装 Redis 的好处
  2. 安装前的准备工作
    • 选择操作系统
    • 基础知识储备 (命令行操作)
    • 确保网络连接
  3. Redis 的主要安装方法概述
    • 从源代码编译安装 (通用性强,最新版本)
    • 使用包管理器安装 (最简单,适合大多数 Linux 用户)
    • 使用 Homebrew 安装 (macOS 用户的首选)
    • 在 Windows 上安装 (推荐使用 WSL 或 Docker)
    • 使用 Docker 容器安装 (隔离性好,跨平台)
  4. 选择适合你的安装方法
    • 不同方法的优缺点对比
    • 针对不同用户的建议
  5. 详细安装步骤
    • 方法一:从源代码编译安装 (以 Linux 为例)
      • 安装必要的构建工具
      • 下载 Redis 源代码
      • 解压并进入目录
      • 编译 Redis
      • 运行测试 (可选但推荐)
      • 安装到系统
      • 使用 install_server.sh 脚本进行服务化安装 (推荐)
      • 启动、停止、重启 Redis 服务 (Systemd / SysVinit)
      • 设置开机自启
    • 方法二:使用包管理器安装 (以 Ubuntu/Debian 和 CentOS/RHEL 为例)
      • Ubuntu/Debian 系统 (apt)
        • 更新包列表
        • 安装 Redis 服务器
        • 检查服务状态
        • 启动、停止、重启服务
        • 设置开机自启 (通常默认)
      • CentOS/RHEL 系统 (yum / dnf)
        • 安装 EPEL 源 (可能需要)
        • 安装 Redis
        • 启动、停止、重启服务
        • 设置开机自启
    • 方法三:使用 Homebrew 安装 (macOS)
      • 安装 Homebrew (如果未安装)
      • 使用 Homebrew 安装 Redis
      • 启动、停止 Redis 服务
      • 配置文件位置
    • 方法四:在 Windows 上安装 (推荐 WSL 或 Docker)
      • 使用 Windows Subsystem for Linux (WSL)
        • 安装 WSL
        • 在 WSL 中按照 Linux 方法安装 (推荐 Package Manager)
        • 在 Windows 中连接 WSL 中的 Redis
      • 使用 Docker Desktop
        • 安装 Docker Desktop
        • 拉取 Redis 镜像
        • 运行 Redis 容器
        • 连接到容器中的 Redis
        • 持久化数据 (简述)
      • 不推荐:原生 Windows 版本的 Redis (微软开源版本,已不再积极维护)
    • 方法五:使用 Docker 容器安装 (跨平台)
      • 安装 Docker 引擎
      • 拉取 Redis 官方镜像
      • 运行一个简单的 Redis 容器
      • 运行一个带有持久化和配置的容器 (推荐)
      • 连接到容器中的 Redis
      • 管理 Redis 容器
  6. 验证安装是否成功
    • 检查 Redis 进程
    • 使用 redis-cli 连接并执行 PING 命令
    • 执行简单的 SETGET 命令
  7. 初步配置 Redis
    • 找到配置文件
    • 了解常用配置项 (bind, port, protected-mode, daemonize, logfile, dir, save)
    • 修改配置并重启服务
  8. 启动、停止与重启 Redis 服务汇总
    • Systemd 用户
    • SysVinit 用户
    • Homebrew 用户
    • Docker 用户
    • 手动启动
  9. 使用 redis-cli 进行基本操作
    • 连接 Redis
    • 执行一些常用命令 (INFO, KEYS, GET, SET, DEL)
  10. 常见问题与故障排除
    • 无法连接 Redis (防火墙、绑定地址、服务未启动)
    • 权限问题
    • 日志文件在哪里?如何查看错误信息?
    • 端口占用问题
  11. 进一步学习资源
    • 官方文档
    • 命令参考
    • 客户端库
  12. 总结

1. Redis 是什么?为什么选择安装它?

Redis 的核心特性

Redis(Remote Dictionary Server)是一个开源(BSD 许可)、高性能的内存数据结构存储,可以用作数据库、缓存和消息代理。与传统数据库不同,Redis 将数据存储在内存中,这使得它的读写速度极快,延迟非常低。除了简单的键值对外,Redis 还支持丰富的数据结构,如字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)等。

Redis 的其他重要特性包括:

  • 持久化: 支持 RDB(Redis Database)快照和 AOF(Append Only File)日志两种持久化方式,可以将内存中的数据保存到磁盘,保证数据不丢失。
  • 高可用性: 支持主从复制(Replication),可以将数据同步到多个副本,提高读取性能和可用性。支持 Sentinel 机制,可以自动监控主从服务器,并在主服务器宕机时进行故障转移。
  • 分布式: 支持 Cluster 模式,可以将数据分布到多个节点上,实现数据分片和水平扩展。
  • 丰富的功能: 支持发布/订阅(Pub/Sub)、Lua 脚本、事务、过期键等高级功能。

Redis 的应用场景

正因为这些特性,Redis 被广泛应用于各种场景:

  • 数据缓存: 将热点数据放在 Redis 中,显著提高应用响应速度。
  • 会话存储: 分布式系统中存储用户会话信息。
  • 消息队列: 通过列表(List)或发布/订阅(Pub/Sub)实现简单的消息队列。
  • 计数器/排行榜: 利用有序集合(Sorted Set)实现实时排行榜。
  • 实时统计: 存储各种实时统计数据。
  • 限流: 利用过期键和计数器实现接口限流。
  • 地理空间索引: 利用 Geo 数据结构实现附近的地点搜索。

自己安装 Redis 的好处

虽然有很多云服务提供商提供了托管的 Redis 服务,但自己动手安装 Redis 仍然非常有价值:

  • 学习: 深入了解 Redis 的安装、配置和运行机制,有助于更好地理解和使用 Redis。
  • 定制: 可以完全控制 Redis 的版本、配置和运行环境,满足特定的需求。
  • 开发/测试: 在本地搭建开发或测试环境,无需连接外部网络,方便快捷。
  • 成本: 对于学习和小型项目,自己安装可以节省成本。

2. 安装前的准备工作

在开始安装 Redis 之前,你需要做一些简单的准备:

  1. 选择操作系统: Redis 官方推荐在 Linux 系统上运行。macOS 也可以通过 Homebrew 轻松安装。在 Windows 上,官方版本已不再维护,但可以使用 Windows Subsystem for Linux (WSL) 或 Docker 来运行标准的 Linux 版本 Redis,这是最推荐的方式。本文将覆盖这些主流平台。
  2. 基础知识储备: 你需要对基本的命令行操作有一定的了解,包括如何在终端中输入命令、切换目录、使用 sudo (用于需要管理员权限的操作) 等。
  3. 确保网络连接: 安装过程中可能需要下载源代码包或通过包管理器下载安装文件,因此需要稳定的互联网连接。
  4. 编译环境 (如果从源代码安装): 如果你打算从源代码编译安装 Redis,你需要确保系统上安装了必要的构建工具,主要是 C 语言编译器(如 GCC 或 Clang)和 make 工具。大多数 Linux 发行版和 macOS 都提供了安装这些工具的方法。

3. Redis 的主要安装方法概述

Redis 提供了几种主要的安装途径,每种方法都有其特点:

  • 从源代码编译安装: 这是最原始的安装方式,可以让你获取最新版本的 Redis,并且对编译选项有完全的控制。Redis 主要使用 C 语言编写,因此这种方法需要在系统上安装编译工具链。安装过程包括下载源代码、解压、编译(make)和安装(make install)。
  • 使用包管理器安装: 这是在 Linux 和 macOS 上最推荐的安装方式之一。各种 Linux 发行版(如 Ubuntu、Debian、CentOS、Fedora)的软件仓库中通常都包含 Redis。macOS 用户可以使用 Homebrew。使用包管理器安装非常简单快捷,包管理器会处理依赖关系,并通常会自动设置 Redis 作为系统服务。缺点是包管理器中的版本可能不是最新的。
  • 在 Windows 上安装: 官方没有原生支持 Windows 的 Redis 版本。但微软的开源部门曾经维护过一个 Windows 移植版本(Microsoft Archive/redis),不过目前已不再积极维护,版本较旧。强烈推荐在 Windows 上使用 WSL 或 Docker 来运行标准的 Linux 版本 Redis。
  • 使用 Docker 容器安装: 如果你的系统上安装了 Docker,那么使用 Docker 运行 Redis 是一个非常方便的选择。Docker 容器提供了隔离的环境,易于部署、管理和清理。它适用于各种操作系统(Linux, macOS, Windows)。

4. 选择适合你的安装方法

选择哪种安装方法取决于你的操作系统、使用目的和经验水平:

  • 对于大多数初学者在 Linux/macOS 上: 推荐使用包管理器 (apt/yum/dnf/Homebrew)。这是最快、最简单的方式,安装过程自动化程度高,也方便后续的更新和管理。
  • 如果你想学习 Redis 的编译安装过程,或者需要安装最新的 Redis 版本,或者需要特定的编译选项: 选择从源代码编译安装。 这提供了最高的灵活性。
  • 如果你在 Windows 上: 强烈推荐使用 WSL 或 Docker。 这让你能够在 Windows 环境下运行稳定、标准的 Linux 版本 Redis。原生 Windows 版本不建议用于生产环境或严肃的开发。
  • 如果你已经在使用 Docker,或者希望在一个隔离的环境中运行 Redis,或者需要快速在不同环境(包括 Windows)中复制 Redis 环境: 选择使用 Docker。

接下来,我们将详细介绍这些安装方法的具体步骤。

5. 详细安装步骤

方法一:从源代码编译安装 (以 Linux 为例,适用于绝大多数 Linux 发行版)

从源代码安装可以保证你安装的是最新版本的 Redis,并且可以控制编译选项。

步骤 1:安装必要的构建工具和依赖

首先,你需要安装 C 编译器、make 工具以及一些构建依赖。Redis 的测试套件依赖于 Tcl 语言,所以也需要安装 Tcl。

  • 对于基于 Debian/Ubuntu 的系统:

    bash
    sudo apt update
    sudo apt install build-essential tcl -y

    解释:
    * sudo apt update: 更新系统的包列表。
    * sudo apt install build-essential tcl -y: 安装 build-essential 元包(它包含了 GCC 编译器、make 等基本构建工具)和 tcl(用于运行 Redis 的测试)。-y 选项表示自动确认安装。

  • 对于基于 RHEL/CentOS/Fedora 的系统:

    bash
    sudo yum update # 或者 dnf update
    sudo yum groupinstall "Development Tools" -y # 或者 dnf groupinstall "Development Tools" -y
    sudo yum install tcl -y # 或者 dnf install tcl -y

    解释:
    * sudo yum update / sudo dnf update: 更新系统。
    * sudo yum groupinstall "Development Tools" / sudo dnf groupinstall "Development Tools": 安装开发工具组,包含 GCC 等。
    * sudo yum install tcl / sudo dnf install tcl: 安装 Tcl。

步骤 2:下载 Redis 源代码

访问 Redis 官方网站(https://redis.io/download)获取最新稳定版本的下载链接。你可以使用 wgetcurl 命令在终端中下载。

例如,下载 Redis 7.2.4 版本 (请根据官网获取最新链接):

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

步骤 3:解压并进入目录

下载完成后,解压压缩包并进入解压后的目录:

bash
tar -xzf redis-7.2.4.tar.gz
cd redis-7.2.4

解释:
* tar -xzf <filename>: 解压 .tar.gz 格式的压缩文件。-x 表示解压,-z 表示使用 gzip 解压,-f 表示指定文件名。
* cd <directoryname>: 进入新创建的 Redis 源代码目录。

步骤 4:编译 Redis

在 Redis 源代码目录下,执行 make 命令进行编译:

bash
make

这个过程会将源代码编译成可执行文件。如果一切顺利,你会在 src 目录下看到 redis-server (Redis 服务器) 和 redis-cli (Redis 命令行客户端) 等可执行文件。

步骤 5:运行测试 (可选但推荐)

在安装之前运行测试可以验证编译后的程序是否正常工作,这对于确保 Redis 的稳定运行非常重要。

bash
make test

运行测试需要 Tcl。如果 Tcl 未安装或测试失败,你需要排查原因。测试可能需要一些时间。

步骤 6:安装到系统

编译成功后,你可以选择将 Redis 的可执行文件和配置文件安装到系统的标准位置。

bash
sudo make install

默认情况下,make install 会将 redis-server, redis-cli, redis-sentinel 等可执行文件复制到 /usr/local/bin 目录下,将 redis.conf 配置文件复制到 /usr/local/etc 目录下。这些目录通常已经被添加到系统的 PATH 环境变量中,因此你可以在任何位置直接执行 redis-serverredis-cli 命令。

步骤 7:使用 install_server.sh 脚本进行服务化安装 (推荐)

虽然 make install 复制了文件,但它并没有设置 Redis 作为系统服务(Systemd 或 SysVinit),以便于方便地启动、停止和管理。Redis 源代码包提供了一个有用的脚本 ./utils/install_server.sh 来完成这个任务。强烈推荐使用这个脚本来完成最终的安装和配置。

bash
sudo ./utils/install_server.sh

执行这个脚本后,它会引导你进行一系列配置:

  • Please select the redis port for this instance: (选择 Redis 监听的端口,默认为 6379)
  • Please select the redis config file name: (选择配置文件的名称,默认为端口号 6379.conf)
  • Please select the redis log file name: (选择日志文件的名称,默认为端口号 .log)
  • Please select the data directory for this instance: (选择数据文件的目录,如 RDB/AOF 文件,默认为 /var/lib/redis/端口号)
  • Please select the redis executable path: (确认 redis-server 可执行文件的路径,通常默认为 /usr/local/bin/redis-server)
  • Cli executable path: (确认 redis-cli 可执行文件的路径,通常默认为 /usr/local/bin/redis-cli)

脚本会自动完成以下工作:

  • 将生成的配置文件(例如 /etc/redis/6379.conf)复制到 /etc/redis/ 目录下。
  • 创建数据目录(例如 /var/lib/redis/6379)。
  • 创建日志文件(例如 /var/log/redis/6379.log)。
  • 设置合适的权限。
  • 为 Redis 创建一个系统服务文件(Systemd service unit 或 SysVinit script),并将其安装到系统中。

步骤 8:启动、停止、重启 Redis 服务

安装脚本完成后,Redis 服务通常会立即启动。你可以使用以下命令来管理服务:

  • 对于使用 Systemd 的系统 (大多数现代 Linux 发行版,如 Ubuntu 15.04+, CentOS 7+, Fedora):

    如果服务名是 redis_6379 (由脚本生成),则命令如下:

    bash
    sudo systemctl start redis_6379 # 启动服务
    sudo systemctl stop redis_6379 # 停止服务
    sudo systemctl restart redis_6379 # 重启服务
    sudo systemctl status redis_6379 # 查看服务状态

    如果脚本安装的服务名为 redis (取决于脚本版本或系统默认设置),则替换 redis_6379redis

  • 对于使用 SysVinit 的系统 (较旧的 Linux 发行版):

    如果 init 脚本位于 /etc/init.d/redis_6379,则命令如下:

    bash
    sudo /etc/init.d/redis_6379 start # 启动服务
    sudo /etc/init.d/redis_6379 stop # 停止服务
    sudo /etc/init.d/redis_6379 restart # 重启服务
    sudo /etc/init.d/redis_6379 status # 查看服务状态

步骤 9:设置开机自启

如果你希望 Redis 在系统启动时自动运行:

  • 对于 Systemd 系统:

    bash
    sudo systemctl enable redis_6379 # 或 redis

  • 对于 SysVinit 系统:

    “`bash
    sudo update-rc.d redis_6379 defaults # 对于 Debian/Ubuntu

    或者

    sudo chkconfig redis_6379 on # 对于 RHEL/CentOS
    “`

至此,从源代码安装并设置 Redis 服务就完成了。

方法二:使用包管理器安装 (以 Ubuntu/Debian 和 CentOS/RHEL 为例)

这是在 Linux 上安装 Redis 最简单快捷的方法,强烈推荐给初学者。

对于基于 Debian/Ubuntu 的系统:

  1. 更新包列表:

    bash
    sudo apt update

  2. 安装 Redis 服务器:

    redis-server 包包含了 Redis 服务器程序、客户端程序 (redis-cli) 和默认配置文件。

    bash
    sudo apt install redis-server -y

    包管理器会自动下载 Redis 及其依赖,编译(如果需要)并安装到系统的标准位置,还会自动设置 Redis 作为系统服务并默认启动。

  3. 检查服务状态:

    安装完成后,Redis 服务通常会自动启动。你可以检查其状态:

    bash
    sudo systemctl status redis-server

    你应该看到类似于 active (running) 的输出。

  4. 启动、停止、重启服务:

    bash
    sudo systemctl start redis-server # 启动
    sudo systemctl stop redis-server # 停止
    sudo systemctl restart redis-server # 重启

  5. 设置开机自启:

    使用 apt 安装的 Redis 服务通常默认设置为开机自启,但你也可以显式确认:

    bash
    sudo systemctl enable redis-server

对于基于 RHEL/CentOS/Fedora 的系统:

  1. 安装 EPEL 源 (可能需要):

    在一些较旧的 CentOS/RHEL 版本中,Redis 可能不在默认的官方软件仓库中,需要安装 EPEL (Extra Packages for Enterprise Linux) 仓库。

    • CentOS 7 / RHEL 7:
      bash
      sudo yum install epel-release -y
    • CentOS 8 / RHEL 8 / Fedora:
      bash
      sudo dnf install epel-release -y
  2. 安装 Redis:

    “`bash
    sudo yum install redis -y # 对于 CentOS/RHEL 7

    或者

    sudo dnf install redis -y # 对于 CentOS/RHEL 8 / Fedora
    “`

  3. 启动、停止、重启服务:

    在这些系统上,Redis 服务的名称通常是 redis

    bash
    sudo systemctl start redis # 启动
    sudo systemctl stop redis # 停止
    sudo systemctl restart redis # 重启

  4. 设置开机自启:

    bash
    sudo systemctl enable redis

使用包管理器安装的优点是简单省力,但也可能无法第一时间获取最新版本的 Redis。如果需要最新功能或安全更新,可能需要等待仓库更新或考虑从源代码安装。

方法三:使用 Homebrew 安装 (macOS)

Homebrew 是 macOS 上一个非常流行的包管理器,可以轻松安装各种软件。

  1. 安装 Homebrew (如果未安装):

    打开终端,执行 Homebrew 官网上提供的安装脚本:

    bash
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

    按照提示完成安装过程,包括输入密码和安装 Command Line Tools。

  2. 使用 Homebrew 安装 Redis:

    安装 Homebrew 后,安装 Redis 非常简单:

    bash
    brew install redis

    Homebrew 会自动下载并安装 Redis 及其依赖。

  3. 启动、停止 Redis 服务:

    Homebrew 安装的 Redis 可以作为后台服务运行,方便管理:

    bash
    brew services start redis # 启动 Redis 服务
    brew services stop redis # 停止 Redis 服务
    brew services restart redis # 重启 Redis 服务
    brew services list # 查看 Homebrew 管理的服务列表

    或者,你也可以手动在前台启动 Redis:

    bash
    redis-server /usr/local/etc/redis.conf

  4. 配置文件位置:

    Homebrew 安装的 Redis 配置文件通常位于 /usr/local/etc/redis.conf

方法四:在 Windows 上安装 (推荐 WSL 或 Docker)

如前所述,官方不推荐在 Windows 上直接运行原生 Redis。最推荐的方式是使用 WSL 或 Docker。

使用 Windows Subsystem for Linux (WSL)

WSL 允许你在 Windows 10 或 11 上运行一个完整的 Linux 环境,这样你就可以在其中按照标准的 Linux 方式安装和运行 Redis。

  1. 安装 WSL:

    打开 PowerShell 或命令提示符(以管理员身份运行),执行以下命令:

    powershell
    wsl --install

    这会安装 WSL 和一个默认的 Linux 发行版(通常是 Ubuntu)。根据提示完成安装和初始化。

  2. 在 WSL 中按照 Linux 方法安装:

    打开 WSL 终端(在 Windows 开始菜单中搜索安装的 Linux 发行版名称,如 “Ubuntu”),你就进入了一个标准的 Linux 环境。现在,你可以完全按照上面提到的 方法二:使用包管理器安装 (Ubuntu/Debian) 的步骤来安装 Redis。

    bash
    sudo apt update
    sudo apt install redis-server -y
    sudo systemctl enable redis-server # 设置开机自启 (WSL启动时)
    sudo systemctl start redis-server # 启动服务
    sudo systemctl status redis-server # 检查状态

  3. 在 Windows 中连接 WSL 中的 Redis:

    WSL 中的 Linux 环境与 Windows 共享网络接口。因此,你在 WSL 中运行的 Redis 服务默认监听 127.0.0.1:6379localhost:6379,可以直接从 Windows 的应用或终端中访问。

    在 Windows 的命令提示符或 PowerShell 中:

    “`cmd

    如果已经安装了 redis-cli 客户端 (例如通过 chocolatey 或其他方式)

    redis-cli.exe -h 127.0.0.1 -p 6379 ping
    “`

    你也可以在 WSL 终端内部使用 redis-cli 连接。

使用 Docker Desktop

Docker 提供了一种跨平台的方式来运行隔离的应用容器。在 Windows 上安装 Docker Desktop 后,你可以轻松运行 Redis 容器。

  1. 安装 Docker Desktop:

    从 Docker 官方网站下载并安装 Docker Desktop for Windows:https://www.docker.com/products/docker-desktop/

    安装完成后,确保 Docker 引擎正在运行。

  2. 拉取 Redis 镜像:

    打开命令提示符、PowerShell 或 Git Bash,执行以下命令拉取 Redis 的官方镜像:

    bash
    docker pull redis

  3. 运行一个简单的 Redis 容器:

    你可以运行一个简单的容器,将容器的 6379 端口映射到主机的 6379 端口:

    bash
    docker run --name my-redis -d -p 6379:6379 redis

    解释:
    * docker run: 运行一个新的容器。
    * --name my-redis: 给容器指定一个名称 my-redis,方便以后引用。
    * -d: 在后台(detached)模式运行容器。
    * -p 6379:6379: 将主机的 6379 端口映射到容器的 6379 端口。这样你就可以通过 localhost:6379 从主机访问 Redis。
    * redis: 使用刚刚拉取的 redis 镜像创建容器。

  4. 连接到容器中的 Redis:

    现在,你可以从 Windows 主机上使用 redis-cli 或任何 Redis 客户端连接到 localhost:6379

    “`bash

    如果你在Windows上安装了redis-cli (例如通过chocolatey install redis)

    redis-cli.exe -h 127.0.0.1 -p 6379 ping

    或者,你可以进入容器内部执行redis-cli

    docker exec -it my-redis redis-cli ping
    “`

  5. 管理 Redis 容器:

    • 查看正在运行的容器:docker ps
    • 停止容器:docker stop my-redis
    • 启动容器:docker start my-redis
    • 重启容器:docker restart my-redis
    • 删除容器(停止后):docker rm my-redis
    • 删除镜像(小心,会移除镜像文件):docker rmi redis
  6. 持久化数据 (简述):

    上面简单的运行命令,数据是存储在容器内部的临时存储中,容器被删除数据就丢失了。为了持久化数据,你需要将容器内的 Redis 数据目录 (/data) 映射到主机的目录(使用 -v 参数)。例如:

    bash
    docker run --name my-redis-persistent -d -p 6379:6379 -v redis_data:/data redis redis-server --appendonly yes

    这里使用了 Docker Volume redis_data 来存储数据,并开启了 AOF 持久化 (--appendonly yes)。-v redis_data:/data 将名为 redis_data 的 Docker Volume 挂载到容器内的 /data 目录。关于 Docker 持久化更详细的内容超出了本文范围,但了解如何启动一个带持久化的容器是很重要的。

  7. 不推荐:原生 Windows 版本的 Redis

    微软曾经维护了一个基于 Windows 的 Redis 移植版本,可以在这里找到:https://github.com/microsoftarchive/redis/releases

    但这个项目已经很久没有更新了,版本停留在 3.2 甚至更早,不支持很多新特性,也不稳定。强烈不建议在生产环境或严肃的开发中使用此版本。 如果只是极简单的本地测试,可以下载其 Release 页面提供的 .zip 文件,解压后运行 redis-server.exeredis-cli.exe。但由于其过时性,本文不提供详细安装步骤。

方法五:使用 Docker 容器安装 (跨平台)

无论你使用 Linux, macOS, 还是 Windows,只要安装了 Docker 引擎,都可以使用 Docker 方式安装 Redis。这种方法尤其适合需要快速搭建环境、保持环境清洁、或者在不同平台之间迁移的用户。

  1. 安装 Docker 引擎:

    访问 Docker 官方网站(https://www.docker.com/get-started)下载并安装适用于你的操作系统的 Docker Desktop (Windows/macOS) 或 Docker Engine (Linux)。

  2. 拉取 Redis 官方镜像:

    打开终端或命令提示符,执行以下命令从 Docker Hub 拉取 Redis 官方镜像:

    bash
    docker pull redis

    这会下载最新版本的 Redis 镜像。如果需要特定版本,可以指定标签,例如 docker pull redis:6.2.6

  3. 运行一个简单的 Redis 容器:

    这是最快的启动 Redis 的方法,但不包含数据持久化:

    bash
    docker run --name some-redis -d -p 6379:6379 redis

    解释同上 Docker Desktop for Windows 部分。

  4. 运行一个带有持久化和配置的容器 (推荐):

    对于开发或更严肃的使用,通常需要将数据持久化到宿主机,并可能使用自定义配置。

    • 准备: 创建一个目录用于存放 Redis 数据和配置文件(例如 ~/redis-data~/redis-config)。将你的 redis.conf 配置文件放到 ~/redis-config 目录下(你可以从 Redis 源代码包或已安装的 Redis 中获取默认配置文件作为起点)。

    • 运行命令:

      “`bash
      mkdir -p ~/redis-data ~/redis-config # 创建目录 (Linux/macOS)

      在 Windows PowerShell 中创建目录: New-Item -Path ~ -Name redis-data -ItemType Directory, New-Item -Path ~ -Name redis-config -ItemType Directory

      假设你已经有了一个 ~/redis-config/redis.conf 文件

      docker run –name my-redis-persisted -d \
      -p 6379:6379 \
      -v ~/redis-data:/data \
      -v ~/redis-config/redis.conf:/usr/local/etc/redis/redis.conf \
      redis redis-server /usr/local/etc/redis/redis.conf \
      –appendonly yes # 可选:开启AOF持久化
      “`

      解释:
      * -v ~/redis-data:/data: 将主机的 ~/redis-data 目录挂载到容器内部 Redis 默认的数据目录 /data。Redis 的 RDB 和 AOF 文件会存放在这里。
      * -v ~/redis-config/redis.conf:/usr/local/etc/redis/redis.conf: 将主机的 ~/redis-config/redis.conf 文件挂载到容器内部的 Redis 配置文件位置。这样 Redis 启动时会使用你的自定义配置。
      * redis redis-server ...: 指定容器启动时运行的命令。这里是运行 redis-server 并指定配置文件路径,--appendonly yes 是一个额外的 Redis 命令参数,也可以直接写在配置文件里。

  5. 连接到容器中的 Redis:

    同样,通过映射的端口从主机连接:

    “`bash
    redis-cli -h 127.0.0.1 -p 6379 ping

    或者

    docker exec -it my-redis-persisted redis-cli ping
    “`

  6. 管理 Redis 容器:

    使用标准的 Docker 命令管理容器(docker ps, docker stop, docker start, docker restart, docker rm)。

6. 验证安装是否成功

无论你使用哪种方法安装 Redis,都需要验证它是否正确运行。

  1. 检查 Redis 进程:

    在终端中运行以下命令检查是否有 Redis 服务器进程正在运行:

    • Linux/macOS:
      bash
      ps aux | grep redis-server

      你应该看到类似 redis-server 127.0.0.1:6379/usr/local/bin/redis-server 的输出。
    • 对于使用 systemctl 管理服务的 Linux 系统:
      bash
      sudo systemctl status redis-server # 或你安装的服务名

      查找 active (running) 状态。
    • 对于使用 Homebrew 的 macOS:
      bash
      brew services list

      查找 redis 服务,确认状态是 started
    • 对于使用 Docker 的容器:
      bash
      docker ps | grep redis

      查找你的 Redis 容器,确认状态是 Up ...
  2. 使用 redis-cli 连接并执行 PING 命令:

    Redis 提供了一个命令行客户端 redis-cli,这是验证连接和执行命令的最直接方式。

    打开一个新的终端窗口,执行:

    bash
    redis-cli

    如果 Redis 服务器运行在默认端口 6379 且绑定在本地接口 127.0.0.1redis-cli 会自动尝试连接。连接成功后,你将看到 Redis 的提示符 127.0.0.1:6379>

    在提示符下,输入 PING 并回车:

    bash
    127.0.0.1:6379> PING

    如果 Redis 运行正常并成功响应,你应该看到输出:

    bash
    PONG

    这表示客户端成功连接到服务器并收到了响应。

    如果 Redis 服务器运行在不同的主机、端口或绑定地址,你需要指定连接参数:

    bash
    redis-cli -h <hostname/ip> -p <port>

    例如,连接到运行在 192.168.1.100 机器的 6380 端口的 Redis:

    bash
    redis-cli -h 192.168.1.100 -p 6380

  3. 执行简单的 SETGET 命令:

    redis-cli 提示符下,执行一些简单的 Redis 命令来验证数据存储功能:

    bash
    127.0.0.1:6379> SET mykey "Hello Redis"
    OK
    127.0.0.1:6379> GET mykey
    "Hello Redis"
    127.0.0.1:6379> DEL mykey
    (integer) 1
    127.0.0.1:6379> GET mykey
    (nil)

    如果这些命令都能按预期工作,说明你的 Redis 服务器已经成功安装并可以正常使用了。

7. 初步配置 Redis

安装完成后,你可能需要根据自己的需求调整 Redis 的配置。Redis 的行为由配置文件 redis.conf 控制。

  1. 找到配置文件:

    配置文件的位置取决于你的安装方法:
    * 从源代码使用 install_server.sh 安装: 通常在 /etc/redis/ 目录下,文件名为 端口号.conf (如 /etc/redis/6379.conf)。
    * 使用包管理器安装: 通常在 /etc/redis/ 目录下,文件名为 redis.conf
    * 使用 Homebrew 安装 (macOS): 通常在 /usr/local/etc/redis.conf
    * 使用 Docker 容器安装: 如果你挂载了配置文件,就是你挂载的宿主机文件。如果没有挂载,则在容器内部 (/usr/local/etc/redis/redis.conf),修改它通常需要创建新镜像或挂载外部文件。

  2. 了解常用配置项:

    使用文本编辑器(如 nano, vim 或其他)打开配置文件,你会看到很多配置项,每项都有详细的注释说明。一些常用的配置项包括:

    • bind 127.0.0.1: Redis 监听的 IP 地址。默认只监听本地回环地址 127.0.0.1,这样只能从本地访问。如果你需要从其他机器访问 Redis,需要将其修改为服务器的内网 IP 地址,或者 0.0.0.0 (监听所有可用 IP 地址,注意安全风险!)。
    • protected-mode yes: 保护模式。当 bind 设置为 0.0.0.0 但没有设置密码时,此模式会阻止外部连接。强烈建议开启此模式或设置密码。如果修改了 bind 为非 127.0.0.1 且没有设置密码,需要将此项改为 no,但这很不安全。
    • port 6379: Redis 监听的端口。默认为 6379。
    • daemonize yes: 是否以后台进程方式运行。使用包管理器或 install_server.sh 安装的服务通常会通过系统服务管理工具(如 Systemd)控制后台运行,此时此项通常会由服务文件设置为 no 或忽略,脚本安装时可能会将其设置为 yes。手动运行 redis-server 时,将其设置为 yes 会让 Redis 在启动后自动进入后台。
    • logfile "": 日志文件路径。默认输出到标准输出(如果 daemonize no)或 /var/log/redis/redis.log (取决于安装脚本或包)。建议指定一个明确的日志文件路径方便排查问题。
    • dir ./: 数据文件(RDB 快照、AOF 文件)存放的目录。建议修改到一个专门的目录,例如 /var/lib/redis/ 或你在 install_server.sh 中指定的目录。
    • save <seconds> <changes>: RDB 持久化配置。定义了在多少秒内发生多少次写操作时自动进行快照。例如 save 900 1 (900秒内有1次写操作)、save 300 10 (300秒内有10次写操作)、save 60 10000 (60秒内有10000次写操作)。可以配置多个 save 行。要禁用 RDB 持久化,删除或注释掉所有 save 行。
    • appendonly no: AOF 持久化是否开启。默认是 no,不开启 AOF。设置为 yes 可以开启 AOF 持久化,它记录每个写操作命令到文件。AOF 通常比 RDB 更能保证数据不丢失(丢失的数据量取决于 appendfsync 配置)。
    • requirepass your_password: 设置连接密码。为了安全,强烈建议设置一个强密码,特别是当 Redis 需要从外部访问时。设置密码后,客户端连接时需要使用 AUTH your_password 命令进行认证。
  3. 修改配置并重启服务:

    使用编辑器修改 redis.conf 文件后,保存并关闭。为了使配置生效,你需要重启 Redis 服务。

    根据你的安装方法,使用前面提到的服务管理命令或手动重启命令来重启 Redis。

    “`bash

    例如,对于 Systemd 服务

    sudo systemctl restart redis-server
    “`

    修改配置,特别是 bind, protected-mode, requirepass 等,对于保障 Redis 的安全性非常重要。在生产环境中,切勿将 Redis 直接暴露在公网且没有任何认证。

8. 启动、停止与重启 Redis 服务汇总

为了方便查阅,这里汇总了不同安装方法下常用的服务管理命令:

  • Systemd 用户 (大多数现代 Linux):
    • 启动: sudo systemctl start <redis服务名> (例如 redis-serverredis_6379)
    • 停止: sudo systemctl stop <redis服务名>
    • 重启: sudo systemctl restart <redis服务名>
    • 状态: sudo systemctl status <redis服务名>
    • 开机自启: sudo systemctl enable <redis服务名>
  • SysVinit 用户 (较旧 Linux):
    • 启动: sudo /etc/init.d/<redis服务名> start (例如 /etc/init.d/redis/etc/init.d/redis_6379)
    • 停止: sudo /etc/init.d/<redis服务名> stop
    • 重启: sudo /etc/init.d/<redis服务名> restart
    • 状态: sudo /etc/init.d/<redis服务名> status
    • 开机自启 (Debian/Ubuntu): sudo update-rc.d <redis服务名> defaults
    • 开机自启 (RHEL/CentOS): sudo chkconfig <redis服务名> on
  • Homebrew 用户 (macOS):
    • 启动: brew services start redis
    • 停止: brew services stop redis
    • 重启: brew services restart redis
    • 状态: brew services list
  • Docker 用户:
    • 启动容器: docker start <容器名称> (例如 my-redis)
    • 停止容器: docker stop <容器名称>
    • 重启容器: docker restart <容器名称>
    • 状态: docker ps | grep <容器名称> (查找容器状态)
  • 手动启动 (非服务化运行):
    • 启动 Redis 服务器: redis-server [/path/to/redis.conf] (在后台运行请在配置文件中设置 daemonize yes 或使用 nohup 等工具)
    • 停止 (需要客户端连接并执行 SHUTDOWN):
      bash
      redis-cli SHUTDOWN

      这会优雅地关闭服务器,执行持久化操作。

9. 使用 redis-cli 进行基本操作

redis-cli 是 Redis 自带的命令行客户端,是学习和测试 Redis 命令的强大工具。

  • 连接 Redis:

    直接运行 redis-cli 尝试连接本地默认端口:

    bash
    redis-cli

    连接到指定主机和端口:

    bash
    redis-cli -h 192.168.1.100 -p 6380

    如果 Redis 设置了密码:

    “`bash
    redis-cli -a your_password

    或者连接后使用AUTH命令

    redis-cli

    127.0.0.1:6379> AUTH your_password

    OK

    “`

  • 执行一些常用命令:

    在连接成功后的提示符 127.0.0.1:6379> 下,你可以执行各种 Redis 命令。这里列举几个常用的:

    • PING: 检查连接是否正常,服务器是否响应。
      bash
      127.0.0.1:6379> PING
      PONG
    • INFO: 获取 Redis 服务器的各种信息,包括服务器状态、客户端连接、内存使用、持久化信息、复制信息等。非常有用!
      bash
      127.0.0.1:6379> INFO
      # Server
      redis_version:7.2.4
      redis_git_sha1:00000000
      redis_git_dirty:0
      redis_build_id:f2d055c2e3d6871a
      redis_mode:standalone
      os:Linux 5.15.0-91-generic x86_64
      ... (省略其他信息)
    • SET key value: 设置指定键的值。
      bash
      127.0.0.1:6379> SET myname "Alice"
      OK
    • GET key: 获取指定键的值。
      bash
      127.0.0.1:6379> GET myname
      "Alice"
    • DEL key [key ...]: 删除一个或多个键。
      bash
      127.0.0.1:6379> DEL myname
      (integer) 1 # 返回被删除键的数量
      127.0.0.1:6379> GET myname
      (nil) # 键不存在,返回nil
    • KEYS pattern: 查找所有符合给定模式的键。注意:在生产环境中慎用 KEYS *,它会遍历所有键,可能阻塞服务器。
      bash
      127.0.0.1:6379> SET key1 value1
      OK
      127.0.0.1:6379> SET key2 value2
      OK
      127.0.0.1:6379> KEYS key*
      1) "key2"
      2) "key1"
    • SELECT index: 切换到指定数据库(Redis 默认有 16 个数据库,编号从 0 到 15)。
      bash
      127.0.0.1:6379> SELECT 1
      OK
      127.0.0.1:6379[1]> SET db1key value
      OK
      127.0.0.1:6379[1]> SELECT 0
      OK
      127.0.0.1:6379> GET db1key
      (nil) # 在数据库0找不到
      127.0.0.1:6379> SELECT 1
      OK
      127.0.0.1:6379[1]> GET db1key
      "value" # 在数据库1可以找到
    • FLUSHDB: 清空当前数据库的所有键。
    • FLUSHALL: 清空所有数据库的所有键。危险操作,慎用!

10. 常见问题与故障排除

安装过程中或安装后可能会遇到一些问题:

  • 无法连接 Redis (Could not connect to Redis at 127.0.0.1:6379: Connection refused):

    • 服务器是否运行? 使用前面提到的 ps aux, systemctl status, brew services list, docker ps 等命令检查 Redis 服务器进程是否正在运行。
    • 绑定地址是否正确? 检查 redis.conf 中的 bind 配置。如果 Redis 绑定在 127.0.0.1,只能从本地访问。如果你尝试从其他机器连接,需要将 bind 修改为服务器的 IP 或 0.0.0.0,并确保防火墙允许连接。
    • 端口是否正确? 检查 redis.conf 中的 port 配置,并确保客户端连接时使用了正确的端口。
    • 防火墙是否阻止连接? 操作系统的防火墙(如 Linux 的 iptablesfirewalld)可能阻止外部连接到 Redis 端口 (默认 6379)。需要配置防火墙规则允许来自客户端 IP 的连接。例如,在 firewalld 中开放端口:sudo firewall-cmd --zone=public --add-port=6379/tcp --permanent,然后 sudo firewall-cmd --reload
  • 权限问题 (Permission denied):

    • 当你尝试将文件复制到 /etc//usr/local/ 等系统目录,或修改这些目录下的文件时,需要使用 sudo 命令获取管理员权限。
    • 确保 Redis 用户 (如果通过包管理器安装,通常会创建一个 redis 用户) 对数据目录 (dir 配置项指定的目录) 和日志文件有读写权限。安装脚本通常会处理这些权限。
  • 日志文件在哪里?如何查看错误信息?

    • 检查 redis.conf 中的 logfile 配置项,它指定了日志文件的路径。
    • 如果 Redis 作为 Systemd 服务运行,日志可能被 Systemd 捕获,可以使用 journalctl -u <redis服务名> 命令查看日志,例如 sudo journalctl -u redis-server -f (-f 表示实时跟踪)。
    • 查看日志文件是诊断启动失败、配置错误或其他运行时问题的最重要手段。
  • 端口占用问题 (Port 6379 is already in use):

    • 这意味着有另一个程序正在使用 6379 端口。你可以使用 netstat -tulnp | grep 6379 (Linux) 或 netstat -ano | findstr 6379 (Windows) 来查找占用该端口的进程,然后停止它或修改 Redis 的端口。
  • redis-cli 命令找不到:

    • 确认 redis-cli 可执行文件已经被安装到系统的 PATH 环境变量包含的目录中 (例如 /usr/local/bin)。如果不是,你需要手动将其路径添加到 PATH 或使用绝对路径来执行它。使用 which redis-cli 命令可以查找可执行文件的位置。

11. 进一步学习资源

恭喜你!现在你已经成功安装了 Redis 并进行了初步验证。这只是 Redis 强大功能的冰山一角。要深入了解和使用 Redis,你可以参考以下资源:

  • Redis 官方文档 (英文): https://redis.io/documentation
    • 这是最权威的资料来源,涵盖了 Redis 的所有方面,包括命令、数据结构、持久化、复制、集群、安全性等。
  • Redis 命令参考 (英文): https://redis.io/commands
    • 详细列出了 Redis 支持的所有命令及其用法。
  • Redis 官方教程 (英文): https://redis.io/topics/quickstart
    • 官方的快速入门和主题介绍。
  • Redis 客户端库:
    • 大多数编程语言都有成熟的 Redis 客户端库(如 Jedis for Java, redis-py for Python, go-redis for Go, node-redis for Node.js 等),方便你在应用中集成 Redis。查找你所使用语言的 Redis 客户端库并学习其用法。

12. 总结

本文详细介绍了从零开始在 Linux、macOS 和 Windows (通过 WSL 或 Docker) 等不同操作系统上安装 Redis 的过程。我们讨论了从源代码编译、使用包管理器、Homebrew 和 Docker 等多种安装方法,并提供了详细的步骤和命令。此外,我们还指导你如何验证安装、进行初步配置、管理 Redis 服务,并提供了基本的 redis-cli 使用示例以及常见的故障排除技巧。

现在你已经具备了在本地或服务器上运行 Redis 的能力。这为你进一步学习 Redis 的高级特性、将其应用于你的项目打下了坚实的基础。Redis 是一个功能强大且用途广泛的工具,掌握它将极大地提升你的应用性能和开发效率。

希望这篇详细的入门指南对你有所帮助!祝你在 Redis 的学习和使用过程中一切顺利!


发表评论

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

滚动至顶部