

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 教學課程：在 AL2023 上將 Redis 6 轉換為 Valkey
<a name="redis6-to-valkey-al2023"></a>

下列文件說明從 Redis 6 到 AL2023 上 Valkey 轉換的關鍵層面。

## Redis 6 的支援時間表
<a name="redis6-support-al2023"></a>

 Redis 6 於 2027 年 1 月 31 日達到其生命週期結束 (EOL)。在此日期之後，Redis 6 將不再收到來自 Redis 專案的更新或安全修補程式。我們強烈建議使用者在 2027 年 1 月之前遷移到 Valkey，以確保持續支援和安全性更新。

 如需 Redis 版本支援時間表的詳細資訊，請參閱 [Redis End-Of-Life排程](https://github.com/redis/redis?tab=security-ov-file#security-policy)文件。

## Valkey 簡介
<a name="valkey-introduction-al2023"></a>

 Valkey 是 Redis 7 的開放原始碼分支，由 Linux Foundation 維護。它與 Redis 開放原始碼軟體 (OSS) 2.x 版到 7.2.x 版完全相容。Valkey 會維護熟悉的 Redis API 和功能，同時提供數種增強功能：
+ 透過多執行緒增強效能。
+ 改善記憶體效率，尤其是在叢集模式中。
+ 雙通道複寫可提供更佳的資料一致性。

## 遷移計畫和時間表
<a name="valkey-migration-plan-timeline-al2023"></a>

 強烈建議使用者在 Redis 6 達到其生命週期結束 (EOL) 時，於 2027 年 1 月 31 日之前從 Redis 6 遷移至 Valkey。此遷移需要手動介入，而且不是自動的。

 Amazon Linux 建議此遷移，以確保 Redis 相依應用程式的持續功能、支援和安全性更新。

## 遷移選項和步驟
<a name="valkey-migration-option-steps-al2023"></a>

 我們根據您的部署需求和操作需求，向 Valkey 提議三個遷移路徑。

### 選項 1：新的執行個體安裝
<a name="new-instance-installation"></a>

對於新部署或不需要資料遷移時：

1. 安裝 Valkey：

   ```
   [ec2-user ~]$ sudo dnf install valkey
   ```

1. 啟動 Valkey：

   ```
   [ec2-user ~]$ sudo systemctl start valkey
   ```

1. （選用） 在開機時啟用 Valkey：

   ```
   [ec2-user ~]$ sudo systemctl enable valkey
   ```

1. 驗證安裝：

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

### 選項 2：就地取代
<a name="in-place-replacement"></a>

對於不需要資料持久性的現有執行個體：

1. 停止 Redis 6：

   ```
   [ec2-user ~]$ sudo systemctl stop redis6
   ```

1. 安裝 Valkey：

   ```
   [ec2-user ~]$ sudo dnf install valkey
   ```

1. （選用） 在 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
   ```

1. （選用） 在 Valkey 中使用 Redis 6 sentinel 組態檔案：

   ```
   [ec2-user ~]$ sudo cp /etc/redis6/sentinel.conf /etc/valkey/sentinel.conf
   [ec2-user ~]$ sudo chown valkey:root /etc/valkey/sentinel.conf
   ```

1. 啟動 Valkey：

   ```
   [ec2-user ~]$ sudo systemctl start valkey
   ```

1. （選用） 在開機時啟用 Valkey：

   ```
   [ec2-user ~]$ sudo systemctl enable valkey
   ```

1. 驗證 Valkey 安裝：

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

1. 移除 Redis 6：

   ```
   [ec2-user ~]$ sudo dnf remove redis6
   ```

### 選項 3：資料遷移
<a name="data-migration"></a>

此選項可讓您同時執行 Redis 6 和 Valkey。

1. 安裝 Valkey 而不移除 Redis 6：

   ```
   [ec2-user ~]$ sudo dnf install valkey
   ```

1. （選用） 在 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
   ```

1. （選用） 在 Valkey 中使用 Redis 6 sentinel 組態檔案：

   ```
   [ec2-user ~]$ sudo cp /etc/redis6/sentinel.conf /etc/valkey/sentinel.conf
   [ec2-user ~]$ sudo chown valkey:root /etc/valkey/sentinel.conf
   ```

1. 修改 Valkey 組態：

   編輯 'port' 指令`/etc/valkey/valkey.conf`並將其設定為不同的值 （例如 6380)，以避免與 Redis 6 衝突。

1. 啟動 Valkey：

   ```
   [ec2-user ~]$ sudo systemctl start valkey
   ```

1. （選用） 在開機時啟用 Valkey：

   ```
   [ec2-user ~]$ sudo systemctl enable valkey
   ```

1. 驗證 Valkey 安裝：

   ```
   [ec2-user ~]$ valkey-cli -p port info server
   [ec2-user ~]$ valkey-cli -p port ping
   ```
**注意**  
將*連接埠*取代為設定的連接埠號碼。

1. 遷移資料：

   您現在可以使用複寫或手動資料傳輸方法，將資料從 Redis 6 遷移到 Valkey。

1. 更新應用程式組態：

   逐漸更新您的應用程式以使用 Valkey 連接埠。

1. 移除 Redis 6：

   遷移所有資料和應用程式後，您可以停止並移除 Redis 6。

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

**注意**  
 強烈建議在生產系統中實作變更之前，先驗證測試環境中的遷移程序。

## 相關主題
<a name="valkey-migration-related-topics-al2023"></a>

 如需 Valkey 的詳細資訊：
+ Valkey：https：//[https://valkey.io/](https://valkey.io)
+ Valkey 遷移：https：//[https://valkey.io/topics/migration/](https://valkey.io/topics/migration/)