• django缓存


    Django缓存设置

      Django中提供了多种缓存方式,如果要使用缓存,需要先在settings.py中进行配置,然后应用。根据缓存介质的不同,你需要设置不同的缓存后台Backend。

      Memcached缓存

        Memcached是基于内存的缓存,Django原生支持的最快最有效的缓存系统。对于大多数场景,我们推荐使用Memcached,数据缓存在服务器端。使用前需要通过pip安装memcached的插件python-memcached和pylibmc,可以同时支持多个服务器上面的memcached。

        下面是使用pyhon-memcached的设置。

    # localhost
    CACHES = {
       'default': {
           'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
           'LOCATION': '127.0.0.1:11211',
       }
    }
    
    # unix soket
    CACHES = {
       'default': {
           'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
           'LOCATION': 'unix:/tmp/memcached.sock',
       }
    }  
    
    CACHES = {
       'default': {
           'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
           'LOCATION': [
               '172.19.26.240:11211',
               '172.19.26.242:11211',
           ]
           # 我们也可以给缓存机器加权重,权重高的承担更多的请求,如下
           'LOCATION': [
               ('172.19.26.240:11211',5),
               ('172.19.26.242:11211',1),
           ]
       }
    }


      数据库缓存

    CACHES = {
       'default': {
           'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
           'LOCATION': 'my_cache_table',
       }


      文件系统缓存

    CACHES = {
       'default': {
           'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
           'LOCATION': '/var/tmp/django_cache',#这个是文件夹的路径
           #'LOCATION': 'c:fooar',#windows下的示例
       }
    }


      本地内存缓存

    CACHES = {
       'default': {
           'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
           'LOCATION': 'unique-snowflake'
       }
    }

    Django代码中如何使用Cache

    当你做好Cache的设置后,在代码中你可以有三种方式使用Cache。

      1.在视图View中使用

      2.在路由URLConf中使用

      3.在模板中使用

      在视图View中使用cache

    from django.views.decorators.cache import cache_page
    
    @cache_page(60 * 15)
    def my_view(request):
       ...

      在路由URLConf中使用cache

       这是我更喜欢的方式,这样你就不用修改负责逻辑部分的view了。

    from django.views.decorators.cache import cache_page
    
    urlpatterns = [
       path('foo/<int:code>/', cache_page(60 * 15)(my_view)),
    ]

      在模板中使用cache

    {% load cache %}
    {% cache 500 sidebar request.user.username %}
       .. sidebar for logged in user ..
    {% endcache %}

    对于大部分码农而言,我们只需要懂得如何在django中使用cache即可,而不需要详细了解django后台工作原理,比如Django是如何将数据存储到选定介质的以及django是如何判断缓存是否已经过期的。

  • 相关阅读:
    数据库入门
    小米笔试题
    苏宁笔试:UML类图中的关系
    动态规划
    快手笔试题
    二叉树与双向链表的转换
    招银网络科技笔试题
    map的运用
    string类型的常用方法
    string类型和int类型之间的转换
  • 原文地址:https://www.cnblogs.com/ppzhang/p/14499821.html
Copyright © 2020-2023  润新知