在Python/Django中使用Memcached - 问题
我开始使用Memcached来加快我的网站速度。对于数据库中不常变化的数据,我使用了这个:
from django.core.cache import cache
cache_key = 'regions'
regions = cache.get(cache_key)
if result is None:
"""Not Found in Cache"""
regions = Regions.objects.all()
cache.set(cache_key, regions, 2592000) #(2592000sekund = 30 dni)
return regions
对于不常变化的数据,我使用信号:
from django.core.cache import cache
from django.db.models import signals
def nuke_social_network_cache(self, instance, **kwargs):
cache_key = 'networks_for_%s' % (self.instance.user_id,)
cache.delete(cache_key)
signals.post_save.connect(nuke_social_network_cache, sender=SocialNetworkProfile)
signals.post_delete.connect(nuke_social_network_cache, sender=SocialNetworkProfile)
这样做对吗?
我安装了django-memcached-0.1.2,它给我显示了:
Memcached Server Stats
Server Keys Hits Gets Hit_Rate Traffic_In Traffic_Out Usage Uptime
127.0.0.1 15 220 276 79% 83.1 KB 364.1 KB 18.4 KB 22:21:25
有人能解释一下这些列是什么意思吗?
还有最后一个问题。我有一些模板,需要从几个表中获取很多记录(有关系)。所以在我的视图中,我从一个表中获取记录,然后在模板中显示这些记录和其他相关信息。生成页面的时间对于非常小的表(少于100条记录)来说也要花几秒钟。有没有什么简单的方法可以缓存模板中的查询或者整个页面?我是否需要在我的视图中做一些大的结构(包括所有相关的表),缓存它,然后发送到模板?有没有更简单的方法?
1 个回答
1
关于第二个问题(关于django-memcached-0.1.2的状态):
http://effbot.org/zone/django-memcached-view.htm#more-statistics
http://code.sixapart.com/svn/memcached/trunk/server/doc/protocol.txt