Django Academy · レッスン

Cache BackendとRedis

本番用のキャッシュバックエンドを設定します

レッスン 1/413 ステップ

「Cache BackendとRedis」はCoddyKit上の無料Django Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDjango Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Django Academyコースには全4レッスンが含まれています。

キャッシュが保存してくれるもの

cacheはコストの高い結果を保存するため、次のリクエストでは時間のかかる処理を省略し、ほぼ瞬時に応答できます。⚡

キャッシュが存在する場所

Djangoはbackendを通じてキャッシュと通信します。backendは差し替え可能なアダプターで、キャッシュデータを物理的に保存する場所を決定します。

CACHES設定

settings.pyのCACHES辞書でキャッシュを設定します。Djangoが最初に読み取るdefaultというキーを必ず指定してください。

CACHES = {
    "default": {
        "BACKEND": "django.core.cache.backends.locmem.LocMemCache",
    }
}

開発環境ではローカルメモリ

デフォルトのLocMemCacheは、プロセスのメモリにデータを保持します。開発には適していますが、サーバー間では共有されません。

本番環境でRedisを使う理由

実際のアプリケーションでは、backendにRedisを指定します。Redisは高速なインメモリストアで、複数のWebサーバーから同時に共有できます。

Redisバックエンドを設定する

BACKENDをRedisCacheに設定し、RedisサーバーのURLを指すLOCATIONを指定します。

CACHES = {
    "default": {
        "BACKEND": "django.core.cache.backends.redis.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379",
    }
}

キャッシュと通信する

django.core.cacheから共有cacheオブジェクトをインポートすると、コードのどこからでも値の読み書きができます。

from django.core.cache import cache

set と get

setでキーに値を保存し、後から別のリクエストでgetを使って読み取ります。

cache.set("answer", 42)
value = cache.get("answer")

タイムアウトでデータを最新に保つ

setの第3引数は、秒単位のtimeoutです。指定した時間が過ぎるとキーの有効期限が切れ、getはNoneを返します。

cache.set("answer", 42, 300)

キャッシュミスへの対処

キーが存在しない状態をcache missと呼びます。getにデフォルト値を渡して、コードが安全な代替値を使えるようにします。

value = cache.get("answer", "none yet")

その他のバックエンド

Redis以外にも、Djangoにはdatabaseベースやファイルベースのバックエンドが用意されています。別のメモリサーバーを実行できない場合に便利です。

クイックチェック

本番環境のキャッシュが通常どこに置かれるか確認しましょう。

まとめ

cache backendについて学びました。CACHESを設定し、開発環境ではLocMem、本番環境ではRedisを使い、timeoutを指定して値をsetおよびgetします。🎉

無料で開始

AI チューターと学ぶ Python — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
30
レッスン
120

よくある質問

「Cache BackendとRedis」レッスンは無料ですか?

はい。「Cache BackendとRedis」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Django Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Django Academyコースには全4レッスンが含まれています。

「Cache BackendとRedis」で何を学びますか?

本番用のキャッシュバックエンドを設定します ブラウザで直接実行するハンズオンコードでDjango Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Django Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのDjango Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「Cache BackendとRedis」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このDjango Academyレッスンでコードを書いて実行できますか?

はい。すべてのDjango Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Cache BackendとRedis
  2. ビュー単位・サイト単位のキャッシュ
  3. テンプレートフラグメントのキャッシュ
  4. Low-Level cache APIと無効化
← Django Academyに戻る