Redis OSS との主なエンジンバージョン動作と互換性の違い - Amazon ElastiCache

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

Redis OSS との主なエンジンバージョン動作と互換性の違い

重要

次のページは、バージョン間の非互換性の違いをすべて示し、新しいバージョンにアップグレードする際に考慮すべき事項を説明するように構成されています。このリストには、アップグレード時に発生する可能性のある、バージョンの非互換性についての問題が含まれています。

現在の Redis OSS バージョンから利用可能な最新の Redis OSS バージョンに直接アップグレードでき、順次アップグレードする必要はありません。例えば、Redis OSS バージョン 3.0 からバージョン 7.0 に直接アップグレードできます。

Redis OSS バージョンは、メジャー、マイナー、パッチコンポーネントで構成されるセマンティックバージョンで識別されます。例えば、Redis OSS 4.0.10 では、メジャーバージョンは 4、マイナーバージョンは 0、パッチバージョンは 10 です。これらの値は、通常、次の規則に基づいて増分されます。

  • メジャーバージョンは API と互換性のない変更用です

  • マイナーバージョンは、下位互換性のある方法で追加された新機能用です。

  • パッチバージョンは、下位互換性のあるバグ修正と機能以外の変更用です。

最新のパフォーマンスと安定性を向上させるために、常に特定の major.minor バージョン内の最新のパッチバージョンを使用することをお勧めします。ElastiCache バージョン 6.0 for Redis OSS 以降、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 のリージョンの選択について詳しくは、「リージョンとアベイラビリティーゾーンの選択」を参照してください。

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

Redis OSS 7.0 の動作および下位互換性のない変更

変更の詳細なリストについては、「Redis OSS 7.0 release notes」を参照してください。

  • SCRIPT LOADSCRIPT FLUSH はレプリカに伝播されなくなります。スクリプトに対してある程度の耐久性が必要な場合は、Redis OSS 関数の使用を検討することをお勧めします。

  • Pubsub チャネルは、新しい ACL ユーザーにはデフォルトでブロックされるようになりました。

  • STRALGO コマンドは LCS コマンドに置き換えられました。

  • ACL GETUSER の形式が変更され、すべてのフィールドに標準のアクセス文字列パターンが表示されるようになりました。ACL GETUSER を使用してオートメーションを行った場合は、どちらの形式でも処理できることを確認する必要があります。

  • SELECTWAITROLELASTSAVEREADONLYREADWRITEASKING の ACL カテゴリが変更されました。

  • INFO コマンドは、トップレベルのコンテナコマンドではなく、サブコマンドごとのコマンド統計を表示するようになりました。

  • LPOPRPOPZPOPMINZPOPMAX コマンドの戻り値が特定のエッジケースで変更されました。これらのコマンドを使用する場合は、リリースノートを確認して、影響を受けるかどうかを評価する必要があります。

  • SORT および SORT_ROコマンドで GET および BY 引数を使用するためには、キースペース全体へのアクセスが必要になりました。

Redis OSS 6.2 の動作および下位互換性のない変更

変更の詳細なリストについては、「Redis OSS 6.2 release notes」を参照してください。

  • TIMEECHOROLE、および LASTSAVE コマンドの ACL フラグが変更されました。これにより、以前は許可されていたコマンドが拒否されたり、その逆のことが起こったりする可能性があります。

    注記

    これらのコマンドはいずれも、データを変更したり、データにアクセスしたりすることはありません。

  • Redis OSS 6.0 からアップグレードする場合、lua スクリプトへのマップ応答から返されるキーと値のペアの順序が変更されます。スクリプトが redis.setresp() を使用するか、マップを返す (Redis OSS 6.0 の新機能) 場合は、アップグレード時にスクリプトが動作しなくなる可能性があることを考慮してください。

Redis OSS 6.0 の動作および下位互換性のない変更

変更の詳細なリストについては、「Redis OSS 6.0 release notes」を参照してください。

  • 許可されるデータベースの最大数は 120 万から 1 万に減少しました。デフォルト値は 16 です。パフォーマンスとメモリの懸念が見つかったため、これよりはるかに大きい値の使用はお勧めしません。

  • AutoMinorVersionUpgrade パラメータを「はい」に設定すると、ElastiCache はセルフサービスの更新を通じてマイナーバージョンのアップグレードを管理します。これは、セルフサービス更新キャンペーンを通じて、標準的な顧客通知チャネルを通じて処理されます。詳細については、「ElastiCache でのセルフサービスの更新」をご覧ください。

Redis OSS 5.0 の動作および下位互換性のない変更

変更の詳細なリストについては、「Redis OSS 5.0 release notes」を参照してください。

  • スクリプトは、レプリカでスクリプトを再実行するのではなく、効果によってレプリケートされます。これにより、一般にパフォーマンスは向上しますが、プライマリとレプリカの間でレプリケートされるデータ量が増える可能性があります。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 は、4 つ以上の VCPUs。これにより、Redis OSS のパフォーマンス特性が変更され、一部のメトリクスの値が変更される可能性があります。詳細については、「モニタリングすべきメトリクス」を参照して、監視するメトリクスを変更する必要があるかどうかを理解してください。

Redis OSS 4.0 の動作および下位互換性のない変更

変更の詳細なリストについては、「Redis OSS 4.0 release notes」を参照してください。

  • スローログは、クライアント名とアドレスという追加の 2 つの引数をログに記録するようになりました。この変更は、3 つの値を含む各スローログエントリに明示的に依存しない限り、下位互換性があります。

  • CLUSTER NODES コマンドは、わずかに異なる形式を返すようになりましたが、これには下位互換性がありません。クライアントは、クラスタ内に存在するノードについて学習するためにこのコマンドを使用するのではなく、CLUSTER SLOTS を使用することをお勧めします。

過去の EOL

Redis OSS 3.2 の動作および下位互換性のない変更

変更の詳細なリストについては、「Redis OSS 3.2 release notes」を参照してください。

  • このバージョンでは、注意すべき互換性の変更はありません。

詳細については、「Redis OSS の ElastiCache バージョンのサポート終了スケジュール」を参照してください。

Redis OSS 2.8 の動作および下位互換性のない変更

変更の詳細なリストについては、「Redis OSS 2.8 release notes」を参照してください。

  • 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 バージョンのサポート終了スケジュール」を参照してください。