首页 > 其他 > 详细

Django-缓存

时间:2019-08-13 18:26:18      阅读:66      评论:0      收藏:0      [点我收藏+]

缓存框架的核心目标:

1)较少的代码: 缓存应该尽可能快, 因此围绕缓存后的所有框架代码应该保持在绝对最小值, 特别是对于获取操作

2)一致性: 缓存API应该是提供跨越不同缓存后端的一致接口

3)可扩展性: 基于开发人员的需求, 缓存API应该可以在应用程序级别扩展

缓存:

Django内置了缓存框架, 并提供了几种常用的缓存

1)基于Memcached缓存

2)使用数据库进行缓存

3)使用文件系统进行缓存

4)使用本地内存进行缓存

5)提供缓存扩展接口

缓存配置:

1,创建缓存表
./manage.py createcachetable [name]

2,缓存配置:
1) 系统缓存配置:
# 作为 cache backend 使用配置 使用redis保存session
CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/9",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        },
        "KEY_PREFIX": "rock",
        "VERSION": "1",
    }
}
2) Redis 缓存配置:
CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/9",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    }
}

 

两个的使用方法是一样的, 直接加一个装饰器 @cache_page(timeout=10)
@cache_page(timeout=10)
def news(request):
    news_list = []
    for i in range(10):
        news_list.append(‘最近贸易战又开始了%d‘ % i)
    sleep(15)
    return render(request, ‘goods/news.html‘, {‘news_list‘: news_list})

若是多缓存,那么配置的时候:
CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/9",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        },
        "KEY_PREFIX": "rock",
        "VERSION": "1",
    },
"redis_backend": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379/9",
"OPTIONS": { "CLIENT_CLASS": "django_redis.client.DefaultClient", }
} }
使用的时候 @cache_page(timeout=10, cache=‘redis_backend‘) # 可以指定缓存cache 名字

 

Django-缓存

原文:https://www.cnblogs.com/wangyue0925/p/11347465.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!