

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Redis OSS でのメジャーエンジンバージョンの動作と互換性の違い
<a name="VersionManagementConsiderations"></a>

**重要**  
次のページは、バージョン間の非互換性の違いをすべて示し、新しいバージョンにアップグレードする際に考慮すべき事項を説明するように構成されています。このリストには、アップグレード時に発生する可能性のある、バージョンの非互換性についての問題が含まれています。  
現在の Redis OSS バージョンから利用可能な最新の Redis OSS バージョンに直接アップグレードでき、順次アップグレードする必要はありません。例えば、Redis OSS バージョン 3.0 からバージョン 7.0 に直接アップグレードできます。

Redis OSS のバージョンは、メジャー、マイナー、およびパッチコンポーネントで構成されるセマンティックバージョンで識別されます。例えば、Redis OSS 4.0.10 では、メジャーバージョンは 4、マイナーバージョンは 0、パッチバージョンは 10 です。これらの値は、通常、次の規則に基づいて増分されます。
+ メジャーバージョンは API 非互換の変更用です
+ マイナーバージョンは、下位互換性のある方法で追加された新機能用です
+ パッチバージョンは、下位互換性のあるバグ修正と機能以外の変更用です

最新のパフォーマンスと安定性の向上のために、指定された **major.minor** バージョン内の最新のパッチバージョンを常に使用することをお勧めします。Redis OSS 用の ElastiCache バージョン 6.0 以降、ElastiCache では、複数のパッチバージョンを提供するのではなく、Redis OSS マイナーリリースごとに 1 つのバージョンが提供されます。ElastiCache は、実行中のクラスターのパッチバージョンを自動的に管理し、パフォーマンスの向上とセキュリティ強化を実現します。

また、ほとんどの主要な改善が古いバージョンにバックポートされないため、最新のメジャーバージョンに定期的にアップグレードすることをお勧めします。ElastiCache が新しいAWSリージョンに可用性を拡張すると、ElastiCache for Redis OSS は、その時点で新しいリージョンで最新の 2 つの **major.minor** バージョンをサポートしています。たとえば、新しいAWSリージョンが起動し、Redis OSS 用の最新の major.minor ElastiCache バージョンが **7.0** および **6.2** である場合、ElastiCache は新しいAWSリージョンで Redis OSS バージョン **7.0** および **6.2** をサポートします。ElastiCache for Redis OSS の新しい major.minor バージョンがリリースされるたびに、ElastiCache では新たにリリースされたバージョンに対するサポートが追加されます。ElastiCache のリージョンの選択について詳しくは、「[リージョンとアベイラビリティーゾーンの選択](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/RegionsAndAZs.html#SupportedRegions)」を参照してください。

複数のメジャーバージョンまたはマイナーバージョンにまたがるアップグレードを行う場合は、次のリストを考慮してください。このリストには、時間の経過と共に Redis OSS でリリースされる動作と下位互換性のない変更が含まれています。

## Redis OSS 7.0 の動作および下位互換性のない変更
<a name="VersionManagementConsiderations-redis70"></a>

変更の詳細なリストについては、「[Redis OSS 7.0 release notes](https://raw.githubusercontent.com/redis/redis/7.0/00-RELEASENOTES)」を参照してください。
+ `SCRIPT LOAD` と `SCRIPT FLUSH` はレプリカに伝播されなくなります。スクリプトに対してある程度の耐久性が必要な場合は、[Redis OSS 関数](https://valkey.io/topics/functions-intro/)の使用を検討することをお勧めします。
+ Pubsub チャネルは、新しい ACL ユーザーにはデフォルトでブロックされるようになりました。
+ `STRALGO` コマンドは `LCS` コマンドに置き換えられました。
+ `ACL GETUSER` の形式が変更され、すべてのフィールドに標準のアクセス文字列パターンが表示されるようになりました。`ACL GETUSER` を使用してオートメーションを行った場合は、どちらの形式でも処理できることを確認する必要があります。
+ `SELECT`、`WAIT`、`ROLE`、`LASTSAVE`、`READONLY`、`READWRITE`、`ASKING` の ACL カテゴリが変更されました。
+ `INFO` コマンドは、トップレベルのコンテナコマンドではなく、サブコマンドごとのコマンド統計を表示するようになりました。
+ `LPOP`、`RPOP`、`ZPOPMIN`、`ZPOPMAX` コマンドの戻り値が特定のエッジケースで変更されました。これらのコマンドを使用する場合は、リリースノートを確認して、影響を受けるかどうかを評価する必要があります。
+ `SORT` および `SORT_RO`コマンドで `GET` および `BY` 引数を使用するためには、キースペース全体へのアクセスが必要になりました。

## Redis OSS 6.2 の動作および下位互換性のない変更
<a name="VersionManagementConsiderations-redis62"></a>

変更の詳細なリストについては、「[Redis OSS 6.2 release notes](https://raw.githubusercontent.com/redis/redis/6.2/00-RELEASENOTES)」を参照してください。
+ `TIME`、`ECHO`、`ROLE`、および `LASTSAVE` コマンドの ACL フラグが変更されました。これにより、以前は許可されていたコマンドが拒否されたり、その逆のことが起こったりする可能性があります。
**注記**  
これらのコマンドはいずれも、データを変更したり、データにアクセスしたりすることはありません。
+ Redis OSS 6.0 からアップグレードする場合、lua スクリプトへのマップ応答から返されるキーと値のペアの順序が変更されます。スクリプトが `redis.setresp()` を使用するか、マップを返す (Redis OSS 6.0 の新機能) 場合は、アップグレード時にスクリプトが動作しなくなる可能性があることを考慮してください。

## Redis OSS 6.0 の動作および下位互換性のない変更
<a name="VersionManagementConsiderations-redis60"></a>

変更の詳細なリストについては、「[Redis OSS 6.0 release notes](https://raw.githubusercontent.com/redis/redis/6.0/00-RELEASENOTES)」を参照してください。
+ 許可されるデータベースの最大数は 120 万から 1 万に減少しました。デフォルト値は 16 です。パフォーマンスとメモリの懸念が見つかったため、これよりはるかに大きい値の使用はお勧めしません。
+ `AutoMinorVersionUpgrade` パラメータを yes に設定すると、ElastiCache ではセルフサービスの更新を通じてマイナーバージョンのアップグレードが管理されます。これは、セルフサービス更新キャンペーンを通じて、標準的な顧客通知チャネルを通じて処理されます。詳細については、「[ElastiCache でのセルフサービスの更新](Self-Service-Updates.md)」をご覧ください。

## Redis OSS 5.0 の動作および下位互換性のない変更
<a name="VersionManagementConsiderations-redis50"></a>

変更の詳細なリストについては、「[Redis OSS 5.0 release notes](https://raw.githubusercontent.com/redis/redis/5.0/00-RELEASENOTES)」を参照してください。
+ スクリプトは、レプリカでスクリプトを再実行するのではなく、効果によってレプリケートされます。これにより、一般にパフォーマンスは向上しますが、プライマリとレプリカの間でレプリケートされるデータ量が増える可能性があります。Redis OSS 用の ElastiCache バージョン 5.0 でのみ使用可能な以前の動作に戻すオプションがあります。
+ Redis OSS 4.0 からアップグレードする場合、LUA スクリプトの一部のコマンドは、以前のバージョンとは異なる順序で引数を返します。Redis OSS 4.0 では、Redis OSS は応答を確定的にするために一部の応答を辞書順に並べますが、スクリプトが操作の影響によって複製される場合、この並べ替えは適用されません。
+ Redis OSS 5.0.3 以降、ElastiCache for Redis OSS は、いくつかの IO 作業を 4 個以上の VCPU を持つインスタンスタイプのバックグラウンドコアにオフロードします。これにより、Redis OSS のパフォーマンス特性が変更され、一部のメトリクスの値が変更される可能性があります。詳細については、「[モニタリングすべきメトリクス](CacheMetrics.WhichShouldIMonitor.md)」を参照して、監視するメトリクスを変更する必要があるかどうかを理解してください。

## Redis OSS 4.0 の動作および下位互換性のない変更
<a name="VersionManagementConsiderations-redis40"></a>

変更の詳細なリストについては、「[Redis OSS 4.0 release notes](https://raw.githubusercontent.com/redis/redis/4.0/00-RELEASENOTES)」を参照してください。
+ スローログは、クライアント名とアドレスという追加の 2 つの引数をログに記録するようになりました。この変更は、3 つの値を含む各スローログエントリに明示的に依存しない限り、下位互換性があります。
+ `CLUSTER NODES` コマンドは、わずかに異なる形式を返すようになりましたが、これには下位互換性がありません。クライアントは、クラスタ内に存在するノードについて学習するためにこのコマンドを使用するのではなく、`CLUSTER SLOTS` を使用することをお勧めします。

## 過去の EOL
<a name="VersionManagementConsiderations-redis3x-scheduled"></a>

### Redis OSS 3.2 の動作および下位互換性のない変更
<a name="VersionManagementConsiderations-redis32"></a>

変更の詳細なリストについては、「[Redis OSS 3.2 release notes](https://raw.githubusercontent.com/redis/redis/3.2/00-RELEASENOTES)」を参照してください。
+ このバージョンでは、注意すべき互換性の変更はありません。

詳細については、「[Redis OSS 用の ElastiCache バージョンのサポート終了スケジュール](engine-versions.md#deprecated-engine-versions)」を参照してください。

### Redis OSS 2.8 の動作および下位互換性のない変更
<a name="VersionManagementConsiderations-redis28"></a>

変更の詳細なリストについては、「[Redis OSS 2.8 release notes](https://raw.githubusercontent.com/redis/redis/2.8/00-RELEASENOTES)」を参照してください。
+ Redis OSS 2.8.22 以降、Redis OSS AOF は、ElastiCache for Redis OSS ではサポートされなくなりました。データを永続的に保持する必要がある場合は、MemoryDB を使用することをお勧めします。
+ Redis OSS 2.8.22 以降、ElastiCache for Redis OSS では、ElastiCache 内でホストされているプライマリへのレプリカのアタッチがサポートされなくなりました。アップグレード中、外部レプリカは切断され、再接続できなくなります。外部レプリカの代わりに Redis OSS 6.0 で利用できるクライアント側のキャッシュを使用することをお勧めします。
+ `TTL` および `PTTL` コマンドは、キーが存在しない場合は -2 を返し、存在しても関連する有効期限がない場合は -1 を返すようになりました。Redis OSS 2.6 以前のバージョンでは、両方の条件で -1 を返していました。
+ `STORE` オプションが使用されていない場合、`ALPHA` 付きの `SORT` はローカル照合ロケールに従ってソートされるようになりました。

詳細については、「[Redis OSS 用の ElastiCache バージョンのサポート終了スケジュール](engine-versions.md#deprecated-engine-versions)」を参照してください。