Djangoのキャッシュを使ってみたが良いなー
今回は、Djangoの「低水準のキャッシュ API」を使って、
キャッシュを取ることにしてみた。
これ抜群に良いな。
必要な部分(サイトバーやメイン部分の一部など)やオブジェクト丸ごとキャッシュしてやったりと、
色々出来る。
各ユーザーごとにページがある場合なんかは、
そのユーザーごとにキャッシュを取るようにしてあげるなんて事をやってみた。
今回はローカルメモリ上に残すのをやってみる。
まずは、
settings.pyに以下を加える。
CACHE_BACKEND = 'locmem:///'
Djangoオンラインドキュメント和訳に載っていたが、
このキャッシュはマルチプロセスセーフかつスレッドセーフ
良いねー。
次にキャッシュを実際に保存する部分
今回は全てviews.pyで行った。
from django.core.cache import cache
でcacheモジュールをインポートする。
後はcacheを使ったり、変更したり削除したりなどしてみる。
仮にユーザー情報をキャッシュに入れてみた。
ユーザー情報は「user_id」から取得出来るのが前提とした。
キャッシュも「user_id」で紐づけてみた。
if cache.get(user_id):
object = cache.get(user_id)
else:<br />
object = get_user_object(user_id)<
cache.set(user_id, object, 3600)[
などしてあげると、
ユーザーのIDで指定したキャッシュがあれば、
それを使用して無ければ、
ユーザーのオブジェクトを取得するメソッド(仮でget_user_objectとした)なんかで取得する。
その取得したオブジェクトをキャッシュに入れてやる。
これだけでOK。
後はキャッシュが要らない場合に削除したい。
そんな時は下記で実現出来る。
cache.delete(user_id)
ってしてあげれば削除出来る。
今回やったもの以外にも
・テンプレートの部分的キャッシュ
・ビュー単位のキャッシュ
・サイト単位のキャッシュ
などもやってみたいので、
そちらも試してみよう。
いやーDjangoがまた好きになるなぁー。
Django のキャッシュフレームワーク
http://michilu.com/django/doc-ja/cache/
- Posted at:
- 2008/06/19 01:34:00
- 0 Comments
- 0 TrackBacks
- Tags:
- Django
- Trackback:
- http://kishi-r.com/2008/06/19/django%e3%81%ae%e3%82%ad%e3%83%a3%e3%83%83%e3%82%b7%e3%83%a5%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e3%81%bf%e3%81%9f%e3%81%8c%e8%89%af%e3%81%84%e3%81%aa%e3%83%bc/trackback/
TrackBacks
まだ登録されていません。


Comments
まだ登録されていません。