您的位置:首页 > 编程语言 > Go语言

django cache的简单使用

2015-12-24 15:43 603 查看
下面的伪代码演示了如何对动态页面的结果进行缓存:

given a URL, try finding that page in the cache

if the page is in the cache:

return the cached page

else:

generate the page

save the generated page in the cache (for next time)

return the generated page

先简单写一个cache的使用例子,再根据例子分析下命令。(用cache前请先在setting中配置cache_backend,在文章最后有说明)

from django.core.cache import cache

def get_user_detail_info(user, refresh=False):
cache_key = '%s%s' % (user.id, user.name)
value = cache.get(cache_key)
if value and not refresh:
return value
else:
user_detail = USERDETAIL.objects.filter(user_id=user.id).all()
cache.set(cache_key, user_detail, 2*24*3600)
return user_detail

基本上就和上述的伪代码一样,先获取cache_key,然后用cache.get(cache_key)获取信息,如果有值则直接返回。如果没有数值,则去数据中找,然后存入cache,返回。

django配置cache_backend

1)本机先上安装redis,具体安装不说了,一般就是一条命令brew,apt-get、yum等等

2)安装django-redis-cache,用于连接redis和django_cache

3)在django的settings.py中添加

CACHES = {
'default': {
'BACKEND': 'redis_cache.RedisCache',
'LOCATION': HOST+':6379',
'OPTIONS': {
'DB': 6,
'PARSER_CLASS': 'redis.connection.HiredisParser'
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: