動画ストリーミングのキャッシュ戦略
ストリーミングにおけるキャッシュの役割
キャッシュはストリーミングのパフォーマンス向上と帯域幅コスト削減のための重要な技術です。適切なキャッシュ戦略により、オリジンサーバーの負荷を大幅に軽減し、再生のスムーズさを向上させ、CDNコストを削減できます。
マルチティアキャッシュアーキテクチャ
典型的なストリーミングキャッシュアーキテクチャは3層で構成されます。ブラウザキャッシュ、CDNエッジキャッシュ、CDNミドルティアキャッシュです。ブラウザキャッシュはユーザーのデバイス上に、CDNエッジキャッシュはユーザーに最も近く、CDNミドルティアキャッシュはエッジノードとオリジンサーバーを接続します。
M3U8プレイリストファイルは短いキャッシュ時間(通常2〜10秒)が必要で、プレイリストの及时な更新を保証します。TSセグメントファイルはセグメントコンテンツが変更されないため、より長いキャッシュ時間(通常24時間以上)を設定できます。
キャッシュ制御戦略
HTTPキャッシュヘッダーはキャッシュ動作を制御する主要な手段です。Cache-Controlのmax-ageディレクティブはキャッシュの有効期限を設定し、s-maxageディレクティブは特にCDNのキャッシュ時間を制御します。ライブ场景では、プレイリストはno-cacheまたは短いmax-ageを使用し、セグメントは長いmax-ageを使用します。
プリフェッチはプレーヤーが現在のセグメントを再生しながら次のセグメントを事前リクエストするプロアクティブなキャッシュ戦略で、セグメントが必要な時にすでにCDNエッジにキャッシュされていることを保証します。
キャッシュの無効化と更新
動画コンテンツが更新されると、古いキャッシュを無効化する必要があります。一般的な方法は、バージョン付きURL(URLにバージョン番号を追加)、CDNキャッシュの能動的なクリア、短いキャッシュ時間による自然な期限切れなどです。
変更されないオンデマンドコンテンツでは、非常に長いキャッシュ時間または永久キャッシュを設定できます。ライブコンテンツでは、プレイリストキャッシュのより頻繁な更新が必要です。