zoukankan      html  css  js  c++  java
  • drf 缓存简介 未完

    django的缓存简介

    动态网站中,用户的请求需要对数据库进行操作,对服务端的资源消耗比较大,特别是在联多个表查询的时候。为了提高并发量,提高访问的速度,可以使用缓存

    缓存是将一些常用的数据保存内存或者memcache中,在一定的时间内有人来访问这些数据时,则不再去执行数据库及渲染等操作,而是直接从内存或memcache的缓存中去取得数据,然后返回给用户。

    这里只做简单的介绍,提供一些例子。以后做缓存会使用extensions,数据会放在redis

    入门使用

    前后端混合开发的项目中,Django提供了不同粒度的缓存,可以缓存某个页面,可以只缓存一个页面的某个部分,甚至可以缓存整个网站

    配置缓存地址到文件

    CACHES = {
        'default': {
            'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',  # 指定缓存使用的引擎
            'LOCATION': 'G:django_cache',  # 指定缓存的路径
            'TIMEOUT': 300,  # 缓存超时时间(默认为300秒,None表示永不过期)
            'OPTIONS': {
                'MAX_ENTRIES': 300,  # 最大缓存记录的数量(默认300)
                'CULL_FREQUENCY': 3,  # 缓存到达最大个数之后,剔除缓存个数的比例,即:1/CULL_FREQUENCY(默认3)
            }
        }
    }
    

    全站缓存

    中间件
    MIDDLEWARE = [
    'django.middleware.cache.UpdateCacheMiddleware',
    。。。。
    'django.middleware.cache.FetchFromCacheMiddleware',
    ]
    # 在setting.py中的中间件配置
    CACHE_MIDDLEWARE_SECONDS=10  # 全站缓存时间
    

    单页面缓存

    # 在视图函数上加装饰器
    from django.views.decorators.cache import cache_page
    @cache_page(5)  # 缓存5s钟
    def test_cache(request):
        import time
        ctime=time.time()
        return render(request,'index.html',context={'ctime':ctime})
    

    页面局部缓存

    {% load cache %} 导入缓存
    {% cache 5 'name' %}  # 5表示5s钟,name是唯一key值
    {{ ctime }}
    {% endcache %}
    

    前后端分使用缓存

    # views.py ...
    from django.core.cache import cache
    # 导入缓存模块
    # 需要存的时候cache.set,需要取的时候cache.get
    cache.set('key',value可以是任意数据类型)
    cache.get('key')
    

    未完,后续再更新

  • 相关阅读:
    Android 异步请求通用类
    Android 异步下载
    Eclipse 使用 VS Emulator for android 调试环境配置 步骤
    android ListView 可缩放,支持左右上下手势
    安卓中自定义控件引用
    java中的可释放资源定义,类似c#中的using
    java 实现自定义事件
    c# android 全局捕获未处理异常
    java android 捕获未处理异常
    java 中异常处理示例并捕获完整异常内容
  • 原文地址:https://www.cnblogs.com/telecasterfanclub/p/13307310.html
Copyright © 2011-2022 走看看