Cache BackendとRedis
本番用のキャッシュバックエンドを設定します
「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 cacheset と 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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Cache BackendとRedis
- ビュー単位・サイト単位のキャッシュ
- テンプレートフラグメントのキャッシュ
- Low-Level cache APIと無効化