教程:在 AL2023 上从 Redis 6 迁移至 Valkey - Amazon Linux 2023

教程:在 AL2023 上从 Redis 6 迁移至 Valkey

以下文档描述了在 AL2023 上从 Redis 6 迁移至 Valkey 的关键方面。

Redis 6 的支持时间线

Redis 6 将于 2026 年 1 月 31 日达到其使用周期结束(EOL)。在此日期之后,Redis 6 将不再从 Redis 项目获得更新或安全补丁。我们强烈建议用户在 2026 年 1 月之前迁移到 Valkey,以确保持续的支持和安全更新。

有关 Redis 版本支持时间线的更多信息,请参阅 Redis 使用周期结束计划文档。

Valkey 简介

Valkey 是 Redis 7 的一个开源分支,由 Linux 基金会维护。它与 Redis 开源软件(OSS)2.x 到 7.2.x 版本完全兼容。Valkey 保持了熟悉的 Redis API 和功能,同时提供了若干增强:

  • 通过多线程提升性能。

  • 提高内存效率,尤其是在集群模式下。

  • 双通道复制以实现更好的数据一致性。

迁移计划和时间线

强烈建议用户在 2026 年 1 月 31 日 Redis 6 达到其使用周期结束(EOL)之前,从 Redis 6 迁移至 Valkey。此迁移需要手动干预,不是自动的。

Amazon Linux 建议进行此迁移,以确保您依赖 Redis 的应用程序具有持续的功能、支持和安全更新。

迁移选项和步骤

我们根据您的部署需求和运营需求,提出了三条迁移至 Valkey 的路径。

选项 1:新实例安装

适用于新部署或不需要数据迁移的情况:

  1. 安装 Valkey:

    [ec2-user ~]$ sudo dnf install valkey
  2. 启动 Valkey:

    [ec2-user ~]$ sudo systemctl start valkey
  3. (可选)设置开机自启 Valkey:

    [ec2-user ~]$ sudo systemctl enable valkey
  4. 验证安装:

    [ec2-user ~]$ valkey-cli info server [ec2-user ~]$ valkey-cli ping

选项 2:原地替换

适用于不需要数据持久化的现有实例:

  1. 停止 Redis 6:

    [ec2-user ~]$ sudo systemctl stop redis6
  2. 安装 Valkey:

    [ec2-user ~]$ sudo dnf install valkey
  3. (可选)在 Valkey 中使用 Redis 6 配置:

    [ec2-user ~]$ sudo cp /etc/redis6/redis6.conf /etc/valkey/valkey.conf [ec2-user ~]$ sudo cp /etc/valkey/valkey.conf /etc/valkey/valkey.conf.backup [ec2-user ~]$ sudo chown valkey:root /etc/valkey/valkey.conf [ec2-user ~]$ sudo sed -i 's|^dir\s.*|dir /var/lib/valkey|g' /etc/valkey/valkey.conf
  4. (可选)在 Valkey 中使用 Redis 6 哨兵配置文件:

    [ec2-user ~]$ sudo cp /etc/redis6/sentinel.conf /etc/valkey/sentinel.conf [ec2-user ~]$ sudo chown valkey:root /etc/valkey/sentinel.conf
  5. 启动 Valkey:

    [ec2-user ~]$ sudo systemctl start valkey
  6. (可选)设置开机自启 Valkey:

    [ec2-user ~]$ sudo systemctl enable valkey
  7. 验证 Valkey 安装:

    [ec2-user ~]$ valkey-cli info server [ec2-user ~]$ valkey-cli ping
  8. 移除 Redis 6:

    [ec2-user ~]$ sudo dnf remove redis6

选项 3:数据迁移

此选项允许您同时运行 Redis 6 和 Valkey。

  1. 安装 Valkey 但不移除 Redis 6:

    [ec2-user ~]$ sudo dnf install valkey
  2. (可选)在 Valkey 中使用 Redis 6 配置:

    [ec2-user ~]$ sudo cp /etc/redis6/redis6.conf /etc/valkey/valkey.conf [ec2-user ~]$ sudo cp /etc/valkey/valkey.conf /etc/valkey/valkey.conf.backup [ec2-user ~]$ sudo chown valkey:root /etc/valkey/valkey.conf [ec2-user ~]$ sudo sed -i 's|^dir\s.*|dir /var/lib/valkey|g' /etc/valkey/valkey.conf
  3. (可选)在 Valkey 中使用 Redis 6 哨兵配置文件:

    [ec2-user ~]$ sudo cp /etc/redis6/sentinel.conf /etc/valkey/sentinel.conf [ec2-user ~]$ sudo chown valkey:root /etc/valkey/sentinel.conf
  4. 修改 Valkey 配置:

    编辑 /etc/valkey/valkey.conf 并将“port”指令设置为不同的值(例如 6380),以避免与 Redis 6 冲突。

  5. 启动 Valkey:

    [ec2-user ~]$ sudo systemctl start valkey
  6. (可选)设置开机自启 Valkey:

    [ec2-user ~]$ sudo systemctl enable valkey
  7. 验证 Valkey 安装:

    [ec2-user ~]$ valkey-cli -p port info server [ec2-user ~]$ valkey-cli -p port ping
    注意

    port 替换为配置的端口号。

  8. 迁移数据:

    您现在可以使用复制或手动数据传输方法将数据从 Redis 6 迁移到 Valkey。

  9. 更新应用程序配置:

    逐步更新您的应用程序以使用 Valkey 端口。

  10. 移除 Redis 6:

    一旦所有数据和应用程序都已迁移,您可以停止并移除 Redis 6。

    [ec2-user ~]$ sudo systemctl stop redis6 [ec2-user ~]$ sudo dnf remove redis6
注意

强烈建议在生产系统中实施更改之前,在测试环境中验证迁移过程。

有关 Valkey 的更多信息: