教程:在 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:新实例安装
适用于新部署或不需要数据迁移的情况:
-
安装 Valkey:
[ec2-user ~]$sudo dnf install valkey -
启动 Valkey:
[ec2-user ~]$sudo systemctl start valkey -
(可选)设置开机自启 Valkey:
[ec2-user ~]$sudo systemctl enable valkey -
验证安装:
[ec2-user ~]$valkey-cli info server[ec2-user ~]$valkey-cli ping
选项 2:原地替换
适用于不需要数据持久化的现有实例:
-
停止 Redis 6:
[ec2-user ~]$sudo systemctl stop redis6 -
安装 Valkey:
[ec2-user ~]$sudo dnf install valkey -
(可选)在 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 -
(可选)在 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 -
启动 Valkey:
[ec2-user ~]$sudo systemctl start valkey -
(可选)设置开机自启 Valkey:
[ec2-user ~]$sudo systemctl enable valkey -
验证 Valkey 安装:
[ec2-user ~]$valkey-cli info server[ec2-user ~]$valkey-cli ping -
移除 Redis 6:
[ec2-user ~]$sudo dnf remove redis6
选项 3:数据迁移
此选项允许您同时运行 Redis 6 和 Valkey。
-
安装 Valkey 但不移除 Redis 6:
[ec2-user ~]$sudo dnf install valkey -
(可选)在 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 -
(可选)在 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 -
修改 Valkey 配置:
编辑
/etc/valkey/valkey.conf并将“port”指令设置为不同的值(例如 6380),以避免与 Redis 6 冲突。 -
启动 Valkey:
[ec2-user ~]$sudo systemctl start valkey -
(可选)设置开机自启 Valkey:
[ec2-user ~]$sudo systemctl enable valkey -
验证 Valkey 安装:
[ec2-user ~]$valkey-cli -pportinfo server[ec2-user ~]$valkey-cli -pportping注意
将
port替换为配置的端口号。 -
迁移数据:
您现在可以使用复制或手动数据传输方法将数据从 Redis 6 迁移到 Valkey。
-
更新应用程序配置:
逐步更新您的应用程序以使用 Valkey 端口。
-
移除 Redis 6:
一旦所有数据和应用程序都已迁移,您可以停止并移除 Redis 6。
[ec2-user ~]$sudo systemctl stop redis6[ec2-user ~]$sudo dnf remove redis6
注意
强烈建议在生产系统中实施更改之前,在测试环境中验证迁移过程。
相关主题
有关 Valkey 的更多信息:
-
Valkey:https://valkey.io/
-
Valkey 迁移:https://valkey.io/topics/migration/